我讀過的一切都表明,在製作託管存儲過程時,要在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