Повторно используемые хранимые процедуры SQL Server;вложенности;глобальные переменные - PullRequest
2 голосов
/ 12 февраля 2010

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

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

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

Я даже лучше всего так поступаю с обычными sproc или есть лучший способ?

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

Ответы [ 2 ]

3 голосов
/ 12 февраля 2010

Это очень полный список способов обмена данными между хранимыми процедурами:

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

2 голосов
/ 12 февраля 2010

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

Кроме того, вы можете посмотреть больше 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

...