程序员如何更快的工作之 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 的“工具”菜单-->“选项”-->“环境”-->“键盘”中添加一个快捷方式,如下图:
SQL 键盘.jpg
       这样你就可以在你的查询分析器里按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,试试吧

posted @ 2009-10-12 00:46  齐.net  阅读(457)  评论(0编辑  收藏  举报