【问题标题】:SQL Server Stored Procs include file statementSQL Server 存储过程包含文件语句
【发布时间】:2010-07-19 04:00:12
【问题描述】:

我认为不可能按照我的意愿去做,但我还是要问。

我发现我在创建的每个 Stored Proc 的顶部都包含相同的变量。 这些变量用于记录和错误处理。它们不会在存储过程之间发生变化,这意味着如果固定但主要用途是提高可读性并具有一致的样式。

-- 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 2005 的 SQL Server 2008 上进行开发

【问题讨论】:

  • 即使您可以在存储过程中“包含”的文件(或者可能是表)中声明它们,您如何知道从文件中为哪个存储过程选择哪一个?您仍然必须在存储过程中进行硬编码才能选择正确的文件,对吧?

标签: sql sql-server-2008 stored-procedures include


【解决方案1】:

您不能在 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()

【讨论】:

  • 谢谢,我之前考虑过,但这会影响性能。我要去看看有多少成功并回复你
  • 超过 100000 个循环,在我的慢速开发 VM 上,差异约为 0.5 秒。所以我相信你的建议很好,我想我会继续的,谢谢
  • 请问总时长相差半秒?
【解决方案2】:

不,没有包含功能,但您可以尽量减少添加标准代码的工作量。

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

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

【讨论】:

  • 我从现有的存储过程中复制并粘贴它,我会查看模板
猜你喜欢
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
相关资源
最近更新 更多