我读过的一切都表明,在制作托管存储过程时,要在Visual Studio中右键单击并选择“部署”。这很好,但如果我想将它部署在Visual Studio之外的许多不同位置呢?我尝试使用SQL中构建的项目创建程序集,并且在添加程序集的同时,它并未创建程序集。有没有人想过如何在不使用Visual Studio的情况下直接在SQL中执行此操作?如何在不使用Visual Studio的情况下部署托管存储过程?
7
A
回答
6
将您的程序集DLL文件复制到各个服务器上的本地驱动器上。然后与数据库中注册程序集:
create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'
...然后创建一个功能指引DLL中适当的公共方法:
create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]
请务必使用[括号,特别是在NAME_SPACE。名称空间可以有任意数量的点,但是SQL标识符不能,除非这些部分用方括号明确地分开。当我第一次使用SQL CLR时,这是很多令人头痛的问题。
需要明确的是,[YOUR_ASSEMBLY]是你在SQL中定义的名称; [NAME_SPACE]是可以在其中找到您的方法的DLL中的.NET命名空间;和[YOUR_METHOD]只是该名称空间中方法的名称。
2
对于一些更细节/澄清添加到@ kcrumley的anwser以上:
[NAME_SPACE]是完全合格的类型名称并不仅仅是命名空间
- 也就是说,如果你的类是在命名空间称为StoredProcedures
My.Name.Space
,您必须为[NAME_SPACE]部分使用[My.Name.Space.StoredProcedures]
。
如果您的托管存储过程是在一个类没有定义的命名空间,你只需要使用裸露的类名(例如[StoredProcedures]
)。
我也挣扎了一下试图找出如何添加带参数/参数的过程。所以继承人样本为其他人试图这样做:
CREATE PROCEDURE [YOUR_FUNCTION]
(
@parameter1 int,
@parameter2 nvarchar
)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [YOUR_ASSEMBLY].[StoredProcedures].[YOUR_FUNCTION]
相关问题
- 1. 如何在不使用Visual Studio的情况下使用MSTest?
- 2. 在没有Visual Studio的情况下将Web部署到IIS
- 3. 如何在不使用Visual Studio的情况下安装MySQL
- 4. iPhone应用程序在不使用iTunes的情况下部署
- 5. 如何在不使用CLI的情况下部署Angular2项目
- 6. 在不使用Git的情况下部署对Heroku上托管的应用程序的更改
- 7. 在不使用ReSharper的情况下使用Visual Studio中的dotPeek
- 8. 如何在Visual Studio中使用外部托管的Web服务?
- 9. 在没有Visual Studio的情况下使用团队服务在线存储库
- 10. 如何在不使用Qt项目的情况下在Visual Studio中使用QImage?
- 11. Visual Studio 2005内存使用情况
- 12. 如何在不使用Visual Studio的情况下浏览和查看存储在Team Foundation Server中的文件
- 13. 如果情况在存储过程
- 14. 如何在不传递参数的情况下调用存储过程?
- 15. 如何监视托管/非托管代码的内存使用情况
- 16. 在不编译DLL的情况下部署asp.net应用程序
- 17. 在没有使用Visual Studio的情况下在平板电脑上部署metro应用程序
- 18. 如何写在存储过程中,如果状况的情况下
- 19. 如何在不打开Visual Studio的情况下绑定项目
- 20. 如何在不停机的情况下在Bluemix中部署
- 21. 如何在不使用Visual Studio的情况下添加COM引用?
- 22. 如何在不使用Xcode的情况下创建托管内容包?
- 23. 如何跟踪visual studio 2017(C++)中的内存使用情况?
- 24. Sybase IQ - 如何在不打包文本的情况下显示存储过程?
- 25. 如何在不锁定表的情况下优化存储过程?
- 26. 如何在不部署谷歌地图的情况下部署动态地图?
- 27. 如何查看非托管内存使用情况?
- 28. 如何在Visual Studio 2010中分析程序的内存使用情况?
- 29. Visual Studio - 如何在不触摸鼠标的情况下使用它?
- 30. 如何在不使用Visual Studio的情况下运行Angular.js页面?
我发现[this](https://msdn.microsoft.com/en-us/library/ms254956(v = vs.90).aspx )是从命令行完成整个事情的有用资源 – user2426679 2016-08-18 18:08:54