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