2010-02-12 3 views
2

Я хочу сделать некоторый многоразовый, несколько динамический TSQL-код, который может быть вызван во многих других хранимых процедурах, но я борюсь с тем, как реализовать это с помощью SQL Server.Повторяющиеся хранимые процедуры SQL Server; вложенности; глобальные переменные

Среда заключается в том, что многие базы данных с распределенными источниками, которые будут иметь свою собственную хранимую процедуру-оболочку, которые будут вызывать несколько из этих модульных хранимых процедур из общей базы данных ETLManagement. Оболочка sproc вызовет несколько из этих коммо/повторно используемых sprocs (для выполнения операций над некоторыми динамически определенными управляющими таблицами), затем в статусе INSERT INTO (принадлежащем и определяемом исходной системой), а затем еще пару commom/re - возможно использование sprocs.

Одним из основных препятствий является то, что я не могу объявить переменные в этом вложенном sproc, как объявить глобальные переменные, из которых могут считываться все исходные системные sprocs?

Я даже собираюсь сделать это с помощью простого sproc, или есть лучший способ?

(простите мою наивность программирования TSQL, я делал ETL с другими инструментами до сих пор.)

ответ

2

Я бы поставил концепцию глобальных переменных в таблицу. Это единственный эквив, который у вас есть.

Кроме того, вы можете рассмотреть возможность поиска более User Defined Functions, поскольку они могут использоваться во многих других местах, кроме SPROC. Эта статья хорошая ссылка на плюсы/минусы:

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

Честно говоря, если вы заинтересованы в том, чтобы истинные глобальные переменные вы могли бы хотеть рассмотреть вопрос о переходе до пакетов служб Integration Services SQL Server. Это может быть больше вашей чашки чая, учитывая ваши требования.

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