SQL模板资源管理器,你用了吗?
来源:互联网 发布:中国名义利率数据 编辑:程序博客网 时间:2024/04/29 03:34
SQL Server Management Studio 有个模板资源管理器,不知你用过没有?使用模板创建脚本、自定义模板等功能能大大提高你的工作效率,如果没有尝试过,赶紧去试试吧。很多时候,我们习惯了手写脚本,而不愿意花费精力去研究陌生的工具。
你可以在通过下面方式打开模板资源管理器 视图->模板资源管理器; 也可以通过快捷键CTRL + ALT + T打开它。如图所示,你可以看见里面已经包含了许多模板了。
你可以点击任何一个模板,查看它的属性,就可以知道这些模板存储在那个地方了,我本地数据的模板存储在C:/Documents and Settings/Administrator/Application Data/Microsoft/Microsoft SQL Server/100/Tools/Shell/Templates/Sql 目录下面。
模板资源管理器下有SQL Server模板、Analysis Services模板、SQL Server Compact Edition模板三种类型。
在创建自己的模板前,我们来看看系统提供的一些模板. 打开目录Stored Procedure,选择Create Procedure Basic Template 双击打开,如下图所示
-- =============================================-- Create basic stored procedure template-- =============================================-- Drop stored procedure if it already existsIF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE SPECIFIC_SCHEMA = N'<Schema_Name, sysname, Schema_Name>' AND SPECIFIC_NAME = N'<Procedure_Name, sysname, Procedure_Name>' ) DROP PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name>GOCREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name> <@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>, <@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>AS SELECT @p1, @p2GO-- =============================================-- Example to execute the stored procedure-- =============================================EXECUTE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name> <value_for_param1, , 1>, <value_for_param2, , 2>GO
然后你在查询菜单下选择“指定模板参数的值”,快捷键(CTRL + SHIFT + M),弹出如下窗台,你可以定义存储过程名、参数以及参数的默认值等(如下图所示),
定义完后,单击确定,就可以得到如下你想要的存储过程基本定义,然后填写自己的逻辑代码,避免了从头开始一步一步重写。减少不必要的重复劳动。最重要的是它能灵活的定义你自己想要的模板名称。下面来看看一步步定义自己的模板。如图所示:我们首先新建一个名为“Kerry Stored Procedure”的文件夹,然后点击文件夹,新建名为“Create Procedure Basic Template”的模板
右键单击新模板,然后单击“编辑”。在“连接到数据库引擎”对话框中,单击“连接”在查询编辑器中打开新模板。
在查询编辑器中创建一个脚本。按照 <parameter_name, data_type, value>
格式在脚本中插入参数。数据类型和数据值区域必须存在,但是可以为空。
在工具栏上,单击“保存”以保存新模板。
这样一个新的模板就建立了,如下所示
自定义的存储过程模板
USE [MyAssistant]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF OBJECT_ID('<Procedure_Name>', N'P') IS NOT NULL BEGIN DROP PROC <Procedure_Name>;ENDGO--====================================================================================================-- Function : ...........................-- Author : Kerry-- Create Date : 2010-08-11-- Description : ...........................。-------------------------------------------------------------------------------------------------------- 2010-08-12 修改了.....删除了.......... --====================================================================================================CREATE PROCEDURE <Schema_Name, sysname, Schema_Name>.<Procedure_Name, sysname, Procedure_Name> <@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>, <@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>ASSET NOCOUNT ON;BEGIN TRYEND TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage;END CATCHGO
当你要定义一个存储过程的时候,就可以像上面那样创建一个新的存储过程,当然,如果你不习惯上面哪种定义参数的方式,你也可以用下面的方式,把存储过程名、参数等命名为一个特定的存储过程,新建存储过程时、手动在打开的模板里面修改。如下所示,这个可以视个人习惯而定。
USE [MyAssistant]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF OBJECT_ID('USP_StoreProcedureName', N'P') IS NOT NULL BEGIN DROP PROC USP_StoreProcedureName;ENDGO--====================================================================================================-- Function : ...........................-- Author : Kerry-- Create Date : 2010-08-11-- Description : ...........................。-------------------------------------------------------------------------------------------------------- 2010-08-12 修改了.....删除了.......... --====================================================================================================CREATE PROCEDURE [dbo].[USP_StoreProcedureName] @StartTime DATETIME, @EndTime DATETIME, @CstartTime DATETIME, @CendTime DATETIMEASSET NOCOUNT ON;BEGIN TRYEND TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_SEVERITY() AS ErrorSeverity ,ERROR_STATE() AS ErrorState ,ERROR_PROCEDURE() AS ErrorProcedure ,ERROR_LINE() AS ErrorLine ,ERROR_MESSAGE() AS ErrorMessage;END CATCHGO
- SQL模板资源管理器,你用了吗?
- 我的资源管理器,你是怎么了??
- VS2010的HTML 5项目模板你用了吗?
- VS2010的HTML 5项目模板你用了吗?
- 我的资源管理器,你是怎么了?(续)
- 你接触NoSQL (Not Only SQL) 数据库了吗?
- PL/SQL Developer 9.0.1你更新了吗?
- SQL事件探查器,你使用了吗?
- MySql优化-你的SQL命中索引了吗
- Ruby,你用了吗?
- linux你用了吗
- 你的SQL Server备份做好了吗?可以安心睡觉了吗?
- 用Swing做资源管理器
- win7 资源管理器不好用
- 资源管理器
- 资源管理器
- 资源管理器
- 资源管理器
- 书
- Java 判断是否是中文字符
- silverlight图像元素 Image
- 容器与服务器的区别
- Hello world!
- SQL模板资源管理器,你用了吗?
- jdbc连接Oracle设置字符
- 开发人员需要知道的东西杂谈
- Linux内核升级之制作initrd.img及其new-kernel-pkg(.sh)使用
- 关于Windows下文件及文件夹扫描的简单实现(C#与C++)
- WebQQ协议分析(3)——获取用户信息
- The Linux Kernel Module Programming Guide
- calloc与malloc的区别
- 使用dom4j解析xml字符串