2

我想制作一些可在许多其他存储过程中调用的可重用、有点动态的 TSQL 代码,但我正在努力解决如何使用 SQL Server 实现这一点。

环境是许多分布式源系统数据库,它们将拥有自己的包装存储过程,这些存储过程将从公共 ETLManagement DB 调用这些模块化存储过程中的一些。包装 sproc 将调用其中一些 commom/re-usable sproc(对一些动态定义的控制表执行操作),然后是 INSERT INTO 语句(由源系统拥有和定义),然后是更多的 commom/re - 可用的存储过程。

一个主要障碍是我似乎无法在嵌套存储过程中声明变量,如何声明所有源系统存储过程都可以读取的全局变量?

我什至是使用普通存储卡的最佳方法,还是有更好的方法?

(原谅我对 TSQL 编程的天真,直到现在我一直在用其他工具做 ETL。)

4

2 回答 2

3

这是一个非常全面的在存储过程之间共享数据的方法列表:

http://www.sommarskog.se/share_data.html

于 2010-02-12T20:41:55.607 回答
2

我会将全局变量的概念放入查找表中。这是您拥有的唯一等价物。

此外,您可以考虑多看一些User Defined Functions,因为它们可以在比 SPROC 更多的地方使用。这篇文章是一个很好的参考优点/缺点:

http://www.informit.com/articles/article.aspx?p=31724

坦率地说,如果您对拥有真正的全局变量感兴趣,您可能需要考虑升级到 SQL Server Integration Services 包。考虑到您的要求,它可能更像是您的一杯茶。

http://msdn.microsoft.com/en-us/library/ms141026.aspx

于 2010-02-12T19:56:34.623 回答