程序员如何更快的工作之 SQL Server
写存储过程的时候我们一般都是手写代码,而且还是手动加上存储过程的注释。一个两个好说,但写的多了就会想有没省事点的办法呢?
我这里就提供一些小门道。
快速创建存储过程
下面是我要快速创建存储过程的一个模板存储过程:
/********************************************** * 作 者: 齐.net * 创建日期: 2009/10/12 * 功能描述: 说明信息 * **********************************************/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[Proc_Default_ProcNme] /*参数名 类型[(大小)] [=默认值] [方向] */ AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON END
这里注释里的日期是自动生成的,我们每次生成这个代码后就只需要将“说明信息”改成自己的注释就可以了。那么,如何在每次要创建存储过程的时候快速的生成这个代码呢?请看下面:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[Proc_Sys_CreateProcTemp] /*参数名 类型[(大小)] [=默认值] [方向] */ @chvProcName varchar(64) ='Proc_Default_ProcNme' AS BEGIN -- 出于性能考虑,这是每个存储过程的第一条语句 -- 当SET NOCOUNT为ON时,将不向客户端发送存储过程中每个语句的DONE_IN_PROC消息。 -- 如果存储过程中包含的一些语句并不返回许多实际数据,则该设置由于大量减少了网络流量,因此可显著提高性能。 SET NOCOUNT ON DECLARE @chvSqlStr VARCHAR(1024) SET @chvSqlStr='/********************************************** * 作者: 齐.net * 创建日期: ' --加上创建时间 SET @chvSqlStr=@chvSqlStr+CONVERT(VARCHAR(32),GETDATE(),111) SET @chvSqlStr=@chvSqlStr+' * 功能描述: 说明信息 * **********************************************/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[' SET @chvSqlStr=@chvSqlStr+@chvProcName SET @chvSqlStr=@chvSqlStr+'] /*参数名 类型[(大小)] [=默认值] [方向] */ AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON END' PRINT @chvSqlStr END
这个存储过程就是快速生成模板的一个存储过程,你只需要把里面的一些关键信息改成你自己的信息就可以了。
将这个存储过程创建到master数据库中,然后在SQL Server Mangement Studio 的“工具”菜单-->“选项”-->“环境”-->“键盘”中添加一个快捷方式,如下图:
这样你就可以在你的查询分析器里按CTRL+3就会在查询结果的消息里输出我们的模板存在过程。复制到查询分析器里,再修改下,执行就创建了我们需要的存储过程。
快速显示存储过程、函数等内容
同样,我们还可以实现快速的显示出存储过程、函数等以便于我们修改,代码如下:
/********************************************** * 作 者: 齐.net * 创建日期: 2009/10/12 * 功能描述: 快速显示存储过程、函数等 内容 * **********************************************/ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[Proc_Sys_AlterProcTemp] @objname VARCHAR(256) AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON DECLARE @chvSqlStr VARCHAR(1024) SET @chvSqlStr='' DECLARE @dtValues TABLE ( [value] VARCHAR(512) NULL ) INSERT INTO @dtValues ([value]) EXEC sp_helptext @objname SELECT @chvSqlStr=@chvSqlStr+[value] FROM @dtValues PRINT @chvSqlStr END
还有,可以使用一些插件,如:
智能提示的http://www.code84.com/u/matrixdom/File.aspx/t-71
OK,试试吧