Можно ли написать скрипт для простого развертывания хранимых процедур clr? - PullRequest
2 голосов
/ 09 декабря 2008

Я хотел бы включить развертывание хранимых процедур CLR в наш сценарий развертывания (на данный момент powershell), однако не могу найти хороший способ сделать это автоматически.

Я бы подумал, что будет хорошая опция командной строки, чтобы сделать то же самое, что и развертывание правой кнопкой мыши в Visual studio

Ответы [ 3 ]

1 голос
/ 11 августа 2010

Можно использовать методы, описанные в http://msdn.microsoft.com/en-us/library/ms345099.aspx, для генерации сценария развертывания из SSMS. По крайней мере, это касается утомительной части генерации тонны операторов CREATE PROCEDURE.

1 голос
/ 10 декабря 2008

Ну, сам PowerShell не даст вам особой помощи. Вы не упоминаете, какая версия SQL, поэтому я буду немного обобщен.

Действительно, все, что вам нужно сделать, это скопировать в файл сценария необходимые DLL-файлы для ваших хранимых процедур CLR - PowerShell может копировать файлы как маньяк, так что никаких проблем нет. Затем вам нужно выполнить инструкцию CREATE ASSEMBLY в SQL. PowerShell изначально не может помочь с этим. Если вы используете SQL 2008, ваш сценарий может Add-PSSnapin провайдера SQL-командлетов, который даст вам командлет, способный выполнять SQL-запросы - так что вы получите свой оператор CREATE.

Если у вас нет 2008, вам придется написать короткую подпрограмму .NET для создания SqlConnection и SqlCommand - не сложно, и вполне возможно в PowerShell.

Далее, используйте ту же технику, чтобы выполнить оператор CREATE PROC, чтобы фактически создать сохраненный процесс, используя вышеупомянутую сборку.

Зат помогите? Жаль, что нет ничего более автоматизированного, правда. Я не думаю, что MS не потратила много сил, чтобы упростить сложные средства развертывания SQL такого рода, а CLR добавляет немного изящества, так как вам нужно сделать сборку доступной.

0 голосов
/ 13 января 2009

Мастер публикации SQL Server может записывать хранимые пробы CLR в виде текста. Похоже, он преобразует двоичный источник хранимых процедур CLR в некий шестнадцатеричный код.

...