是否有可能編寫使用可變數量參數的存儲過程? (在SQL Server 2005)SQL Server存儲過程
1
A
回答
0
是的,您可以在C#或VB.NET中編寫存儲過程,並將其作爲SQLCLR存儲過程包含在其中。
C#方法可以接受可變長度的參數params
。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[SqlProcedure()]
public static void InsertSomeValues(SqlString currencyCode,
SqlString name,
params object[] args)
{
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
...... do whatever you need to do here........
}
}
}
的SQL CLR - 包含.NET運行時到SQL Server的 - 與SQL Server 2005中查看MSDN docs更多細節出臺。
2
是的,只要設置一個默認值:
CREATE PROCEDURE SomeProc
@SomeParam int,
@SomeParam2 varchar(20) = 'Test Text'
AS
...
然後,你可以爲執行:
EXEC SomeProc 1
0
是的,這是可能的。當我需要這個時,我使用了Arrays and Lists in SQL Server。它會引導您瞭解幾種不同方法的細節。
0
一些方法..
默認值 表變量 CLR存儲過程 分隔字符串
做到這一點
0
一種方式是通過使用XML:
CREATE PROC dbo.GetOrderList (
@OrderList varchar(max)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @DocHandle int
DECLARE @TBL TABLE (
paramname varchar(50),
paramvalue varchar(50)
)
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @OrderList
INSERT INTO @TBL (
paramname,
paramvalue
)
SELECT
paramname,
paramvalue
FROM OPENXML (@DocHandle, '/ROOT/param', 1) WITH (
paramname,
paramvalue
)
EXEC sp_xml_removedocument @DocHandle
END
GO
GRANT EXEC ON dbo.GetOrderList TO public
GO
那麼你的XML看起來像這樣:
<root>
<param>
<paramname>thisparam</paramname>
<paramvalue>1</paramvalue>
</param>
</root>
+1
YIKES! SQL Server 2005引入了大大改進的XQuery支持 - 拋棄那些舊的蹩腳的OPENXML方法,並使用(xml).nodes,(xml).value,(xml).query方法! – 2010-01-03 21:35:32
相關問題
- 1. SQL Server存儲過程sp_executesql
- 2. SQL Server的存儲過程
- 3. sql server 2000存儲過程
- 4. 存儲過程和SQL Server
- 5. SQL Server 2005存儲過程
- 6. Sql server存儲過程
- 7. ASP.NET SQL Server存儲過程
- 8. SQL Server存儲過程
- 9. 從SQL Server存儲過程
- 10. SQL Server存儲過程
- 11. SQL Server存儲過程
- 12. Doctrine + SQL Server存儲過程
- 13. SQL Server存儲過程和Linq-to-SQL
- 14. SQL Server存儲過程,保存
- 15. 從SQL Server存儲過程執行Oracle存儲過程
- 16. 問題而將SQL Server存儲過程,Oracle存儲過程
- 17. 在SQL Server中執行存儲過程
- 18. SQL Server 2005的存儲過程依賴
- 19. SQL Server存儲過程日期
- 20. SQL Server複製 - 存儲過程執行
- 21. 爲SQL Server生成存儲過程
- 22. 使用ROW_NUMBER的SQL Server存儲過程
- 23. C#和SQL Server - 使用存儲過程
- 24. SQL Server存儲過程參數輸出
- 25. SQL Server觸發器,存儲過程
- 26. SQL Server:存儲過程無限循環
- 27. SQL Server存儲過程含義
- 28. Excel 2010&SQL Server存儲過程
- 29. 從DLL執行SQL Server存儲過程
- 30. 存儲過程SQL Server遷移到PostgreSQL
感謝您的解決方案,它解決了我的問題 – Mada 2010-01-03 21:43:40