我想在我们的部署脚本(目前是PowerShell)中包含CLR存储过程部署,但是我无法找到一种自动执行此操作的好方法。
我原本以为在Visual Studio中右键单击部署会有一个很好的命令行选项
答案 0 :(得分:1)
好吧,PowerShell本身不会给你额外的帮助。你没有提到哪个版本的SQL,所以我会有点通用。
真的,你需要做的就是让你的脚本文件为你的CLR存储过程复制必要的DLL - PowerShell可以复制像疯子这样的文件,所以没问题。然后,您需要在SQL中执行CREATE ASSEMBLY语句。 PowerShell本身无法解决这个问题。如果您使用的是SQL 2008,那么您的脚本可以在SQL cmdlet提供程序中添加-PSSnap,这将为您提供一个能够执行SQL查询的cmdlet - 这样就可以获得您的CREATE语句。
如果你没有2008,你将不得不编写一个简短的.NET例程来创建一个SqlConnection和SqlCommand - 并不困难,而且完全可能在PowerShell中。
接下来,使用相同的技术执行CREATE PROC语句,以使用上述程序集实际创建存储过程。
Zat帮忙?可惜没有什么比这更自动化了。 MS没有花费大量的智力来简化这种性质的复杂SQL部署,我不认为,并且CLR的东西增加了一些额外的香料,因为你必须使组件可用。
答案 1 :(得分:1)
可以使用http://msdn.microsoft.com/en-us/library/ms345099.aspx中描述的技术从SSMS生成部署脚本。至少这可以解决生成大量CREATE PROCEDURE语句的繁琐部分。
答案 2 :(得分:0)
SQL Server发布向导可以将CLR存储过程脚本编写为文本。看起来它将CLR存储过程的二进制源转换为某种十六进制编码文本。