我想在我们的部署脚本(目前是powershell)中包含CLR存储过程部署,但是我不能想出一个很好的方法来自动实现这一点。
我本以为会有一个很好的命令行选项来执行与在Visual studio中右键单击deploy相同的操作
发布于 2008-12-10 00:15:58
嗯,PowerShell本身并不会给你额外的帮助。您没有提到SQL的哪个版本,所以我就说得有点笼统了。
实际上,你所需要做的就是让你的脚本文件为你的CLR存储的PowerShell复制必要的all procs可以像狂人一样复制文件,所以没有问题。然后,您需要在SQL中执行CREATE ASSEMBLY语句。PowerShell本身对此无能为力。如果您使用的是SQL 2008,您的脚本可以在SQL cmdlet提供程序中添加-PSSnapin,这将为您提供一个能够执行SQL查询的cmdlet -从而获得您的CREATE语句。
如果你没有2008,你将不得不写一个简短的.NET例程来创建一个SqlConnection和SqlCommand -这并不困难,而且完全可以用PowerShell实现。
接下来,使用相同的技术执行CREATE PROC语句,使用前面提到的程序集实际创建存储的proc。
扎特的帮助?遗憾的是,没有比这更自动化的了。MS并没有花费太多的精力来简化这类复杂的SQL部署工作,我不认为,而且CLR的工作增加了一些额外的趣味性,因为你必须使程序集可用。
发布于 2010-08-11 20:51:42
可以使用http://msdn.microsoft.com/en-us/library/ms345099.aspx中描述的技术从SSMS生成部署脚本。至少这解决了生成大量CREATE PROCEDURE语句的繁琐部分。
发布于 2009-01-12 22:26:46
SQL Server发布向导可以将CLR存储过程编写为文本脚本。看起来它将CLR存储的proc的二进制源代码转换为某种十六进制编码的文本。
https://stackoverflow.com/questions/353439
复制相似问题