如何在不使用Visual Studio的情况下部署托管存储过程?

Noa*_*oah 7 sql clr stored-procedures

我读过的所有内容都表明,在创建托管存储过程时,右键单击Visual Studio并选择deploy.这工作正常,但如果我想将它部署到Visual Studio之外的许多不同位置呢?我尝试使用在SQL中构建的项目的dll创建程序集,虽然它确实添加了程序集,但它没有创建程序集之外的程序.有没有人想过如何直接在SQL中执行此操作,而不使用Visual Studio?

Kev*_*ley 6

将程序集DLL文件复制到各种服务器上的本地驱动器.然后使用数据库注册程序集:

create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'
Run Code Online (Sandbox Code Playgroud)

...然后你创建一个引用DLL中相应公共方法的函数:

create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]
Run Code Online (Sandbox Code Playgroud)

务必使用[括号,特别是在NAME_SPACE周围.命名空间中可以包含任意数量的点,但SQL标识符不能,除非部分由方括号明确设置.当我第一次使用SQL CLR时,这是许多令人头疼的问题的根源.

需要说明的是,[YOUR_ASSEMBLY]是您在SQL中定义的名称; [NAME_SPACE]是DLL中的.NET命名空间,可以在其中找到您的方法; 和[YOUR_METHOD]只是该命名空间中方法的名称.