2010-07-19 80 views
2

我不认为有可能这样做,但我会问,但无论如何。SQL Server存储过程包括文件语句

我发现我在每个存储过程的顶部都包含相同的变量。 这些变量用于记录和错误处理。它们在存储的特效之间不会改变,这意味着如果固定但主要用途是帮助可读性和风格一致。

-- Declare code that resolve to possible Error 
DECLARE @CONFLICT_CODE AS INT 
SET @CONFLICT_CODE= -99 

-- Check for Conflict 
IF Found > 0 
BEGIN 
    SELECT @Error = @CONFLICT_CODE 
END 

我将是巨大的文件,我可以包括到存储过程来定义这些。

我正在开发SQL Server 2008部署到SQL Server 2005

+0

即使你可以在一个文件(或者一个表格)中声明它们,但是你怎么知道文件中的哪一个选择了哪个sproc?您仍然必须在sproc中使用硬编码来选择正确的文件,对吧? – 2010-07-19 04:03:42

回答

3

你不能在TSQL中这样做。另一种方式,没有包含或微距功能

但是,你可以这样创建一个UDF:

CREATE FUNCTION dbo.CONFLICT_CODE() 
RETURNS int 
AS 
BEGIN 
    RETURN -99 
END 

这将在每一个进程内

-- Declare code that resolve to possible Error 
DECLARE @CONFLICT_CODE AS INT 
SET @CONFLICT_CODE= -99 

代替这一点,你会使用这个

SELECT @Error = dbo.CONFLICT_CODE() 
+0

谢谢,我之前考虑过这个,但这会是一个表现。 我是goiung,看看有多少点击并回复给你 – 2010-07-19 04:34:13

+0

在100000循环上,我的缓慢开发虚拟机的差异是~5秒。 所以我相信你提出的建议是好的,我想我会采取行动,谢谢 – 2010-07-19 04:42:41

+0

总共需要多长时间半分钟? – gbn 2010-07-19 05:12:14

0

不,没有包含功能,但是您可以将广告费用降至最低d你的标准代码。

您可以将您的代码添加到文件中,当您需要标准代码时打开文件并复制并粘贴代码。

您也可以创建一个模板文件。在SQL Server Management Studio中,您可以创建模板并在要创建新存储过程时加载模板。加载模板后,您的标准代码将出现在查询工具中。它成为编码新存储过程的起点。

+0

我从现有的存储过程中复制并粘贴它,我会查看模板 – 2010-07-19 04:44:01