[英]SQL Server 2008 Receive an user-defined table type in a CLR Stored Procedure?
我在SQL Server 2008中具有表值參數,例如:
CREATE TYPE UserType AS TABLE
(
UserID int,
UserName nvarchar(100),
UserPassword nvarchar(100)
)
我可以在我的SQL CLR存儲過程中以某種方式使用此類型嗎? 例如作為輸入參數?
[SqlProcedure]
public static void SomeFunction (/* what type should be here ?? */)
{
//
}
Transact-SQL表值函數實現了將該函數調用到中間表中的結果 。 由於它們使用中間表,因此可以在結果上支持約束和唯一索引。 當返回大結果時,這些功能將非常有用。
相反,CLR表值函數表示流替代項。 不需要在單個表中實現整個結果集 。 由托管函數返回的IEnumerable對象由調用表值函數的查詢的執行計划直接調用,並且結果以增量方式使用。 此流模型可確保在第一行可用后立即使用結果,而不必等待整個表被填充。 如果您返回的行數非常大,這也是一個更好的選擇,因為不必將它們作為整體存儲在內存中。 例如,可以使用托管表值函數來解析文本文件並將每一行作為一行返回。
嘗試使用類而不是表值參數:
public class UserType
{
int UserID { get; set; }
string UserName { get; set; }
string UserPassword { get; set; }
)
[SqlProcedure]
public static void SomeFunction (UserType type)
{
//
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.