2

我想在我们的部署脚本(目前是 powershell)中包含 CLR 存储过程部署,但是我想不出一个自动执行此操作的好方法。

我原以为会有一个不错的命令行选项来执行与 Visual Studio 中的右键单击部署相同的操作

4

3 回答 3

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 语句,以使用上述程序集实际创建存储过程。

扎特帮助?可惜没有什么比自动化更自动化了,真的。我不认为 MS 并没有花很多精力来简化这种性质的复杂 SQL 部署的东西,而且 CLR 的东西增加了一些额外的趣味,因为你必须使程序集可用。

于 2008-12-10T00:15:58.300 回答
1

可以使用http://msdn.microsoft.com/en-us/library/ms345099.aspx中描述的技术从 SSMS 生成部署脚本。至少这解决了生成大量 CREATE PROCEDURE 语句的繁琐部分。

于 2010-08-11T12:51:42.450 回答
0

SQL Server 发布向导可以将 CLR 存储过程脚本编写为文本。看起来它将 CLR 存储过程的二进制源转换为某种十六进制编码文本。

于 2009-01-12T22:26:46.140 回答