0
我有兩個問題要問在這一點上我如何通過paramters動態運作和執行存儲過程的動態
- 我如何通過參數的函數,其中的參數的數量是未知的,直到該功能調用?(SQL Server 2008)
- 如何在函數和返回表中動態執行存儲過程?
爲了使問題更加清楚,我在C#
中爲調用方法添加了一小段代碼,其中參數的數目是未知的,直到函數被調用。請包涵。
public void DemoFunction(string name,params string[] list)
{
for (int i = 0; i < list.Length; i++)
{
// Do whatever we want
}
}
在C#,我們可以調用等
DemoFunction("MyName","A","B",....etc etc)
問題1
我可以定義參數上面的方法是在SQL Server的功能像C#
代碼我有動態(params string[] list
)?
CREATE FUNCTION [dbo].ExecStoredProc (@ProcName varchar(40),@Param1 INT,@Param2 VARCHAR(50))
(
....
....
....
)
問題2
- 的
stored procedure
執行的名稱將被傳遞給這個function
。 - 用於執行
stored procedure
參數將(問題1如) - 我需要執行
stored procedure
時動態傳遞作爲參數傳遞給該功能的function
內部並返回結果作爲被傳遞到這個function
但應該是動態表。 - 我該如何聲明一個表,用於返回列數未知的結果,直到執行過程?
這裏是我試過到目前爲止
-- Here the parameters should be dynamic as like params string[] list
CREATE FUNCTION [dbo].ExecStoredProc (@ProcName varchar(40),@Param1 INT,@Param2 VARCHAR(50))
RETURNS @ReturnTable TABLE
(
COLUMN1 INT
,COLUMN2 DATETIME
,COLUMN3 VARCHAR(50)
)
AS
BEGIN
-- Is it possible like SELECT * INTO @ReturnTable FROM(Exec @ProcName)?
INSERT INTO @ReturnTable
-- This should be dynamic including the number of parameters
Exec @ProcName 'Params'
RETURN
END