[英]Are SQL Server CLR and T-SQL stored procedures identical to the caller?
我想知道是否可以用C#編寫一些虛擬的存儲過程,因為我不太了解T-SQL。
是否使用標准數據庫庫類將同一過程的C#和T-SQL版本與調用代碼(例如C ++ / C#/ Java代碼)區分開?
是的,呼叫者不會知道兩者之間的區別。 但是,API有一些區別:
NVARCHAR(MAX)
, VARBINARY(MAX)
和XML
)在SQLCLR對象中不能具有默認值。 (可能建議Microsoft Connect投票: 在SQLCLR對象中支持NVARCHAR(MAX),VARBINARY(MAX)和XML類型的默認參數值 ) SMALLDATETIME
SMALLMONEY
CHAR
VARCHAR
TEXT
NTEXT
IMAGE
除了對問題的技術回答之外,還需要考慮一些事項:
什么才算是“虛擬”? 您只需要簽名嗎? 如果是這樣,那么在純T-SQL中執行此操作會容易得多。 T-SQL進行模擬存儲過程所需要做的就是:
CREATE PROCEDURE SchemaName.ProcedureName ( @Param1name Param1Type, @Param2name Param2Type, ... ) AS SELECT CONVERT(resultField1type, NULL) AS [resultField1name], CONVERT(resultField2type, NULL) AS [resultField2name], ... ;
術語“虛擬”意味着這些將在以后用其他東西代替。 它們將被替換為什么? T-SQL存儲過程? 如果您不了解T-SQL,誰來寫那些?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.