Sql server 可重用的SQL Server存储过程;筑巢;全局变量

Sql server 可重用的SQL Server存储过程;筑巢;全局变量,sql-server,tsql,stored-procedures,etl,Sql Server,Tsql,Stored Procedures,Etl,我想制作一些可重用的、有点动态的TSQL代码,这些代码可以在许多其他存储过程中调用,但我正在努力解决如何使用SQL Server实现这一点 该环境是许多分布式源系统数据库,这些数据库将有自己的包装器存储过程,这些存储过程将从公共ETL管理数据库中调用其中一些模块化存储过程。包装存储过程将调用其中一些常用/可重用存储过程(对一些动态定义的控制表执行操作),然后调用一个INSERT-INTO-station(由源系统拥有和定义),然后调用更多的常用/可重用存储过程 一个主要障碍是我似乎无法在嵌套存储

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

该环境是许多分布式源系统数据库,这些数据库将有自己的包装器存储过程,这些存储过程将从公共ETL管理数据库中调用其中一些模块化存储过程。包装存储过程将调用其中一些常用/可重用存储过程(对一些动态定义的控制表执行操作),然后调用一个INSERT-INTO-station(由源系统拥有和定义),然后调用更多的常用/可重用存储过程

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

我这样做是普通存储过程的最佳方式,还是有更好的方式


(请原谅我对TSQL编程的无知,到目前为止,我一直在使用其他工具进行ETL。)

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

<> P>此外,您可以考虑查看更多的代码>用户定义函数< /> >,因为它们可以在比SpROC更多的地方使用。这篇文章很好地参考了优点/缺点:

P.>坦白地说,如果您对真正的全局变量感兴趣,您可能需要考虑向SQLServer集成服务包移动。考虑到你的要求,这可能更适合你


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