2011-03-17 113 views
1

如何在SQLCLR中使用C#編寫存儲過程?SQL中的存儲過程CLR

目前我正在使用SQL Server Management Studio,並使用T-SQL編寫存儲過程,如create proc sp_item as ....

+0

對不起,我沒有讓你。你可以再詳細一點嗎。據我所知,你可以參考LINQ - http://msdn.microsoft.com/en-us/library/bb308959.aspx – 2011-03-17 08:54:27

+0

似乎是一個足夠明確的問題給我。這本身很可能與LINQ無關。 – 2011-03-17 09:08:35

回答

9

參見:

基本上有Visual Studio的模板,讓你開始使用SQL CLR項目。填入空格,編寫實際的代碼,甚至可以直接從Visual Studio中將這些CLR程序集部署到SQL Server中。

一句話要小心:我不會在基於集合的更新中插入類似於SQL CLR存儲過程的東西 - 爲此,T-SQL存儲過程只是更好更快。

SQL-CLR非常適合擴展 SQL Server具有諸如字符串操作,日期處理,呼叫的能力網絡服務或其他東西。我建議針對嘗試用C#SQL CLR存儲特效代替所有T-SQL存儲特效僅僅因爲您可以僅僅因爲它很酷 - 使用合適的工具來完成正確的工作!集合上的批量操作更適合T-SQL。

1

除了由Marc所提供的鏈接,我也寫了書面SQLCLR表值函數一個簡短的教程(僅供參考,免費註冊,查看SQL Server的中央文章必填項):

CLR Table-Valued Function Example with Full Streaming (STVF/TVF)

我也一直在寫了一系列文章,對一般用SQLCLR工作:

Stairway to SQLCLR


另外,您不應該使用sp_作爲存儲過程名稱中的前綴。這是一種特殊的語法,它會導致SQL Server首先檢查master然後中的存儲過程,如果在那裏未找到該存儲過程,它將搜索當前數據庫,從而降低性能。