如何在存储过程中调用存储过程?

时间:2011-04-23 12:07:11

标签: sql-server-2008 stored-procedures

我在SQL Server 2008中定义了一个用户定义的表类型。

这是代码

CREATE TYPE [dbo].[PayElementTable] AS TABLE(
    [EffDate] [varchar](30) NULL,
    [PayEle] [varchar](50) NULL,
    [ComType] [varchar](50) NULL,
    [Oper] [varchar](20) NULL,
    [Amount] [decimal](10, 2) NULL,
    [Rowno] [varchar](10) NULL
)
GO

然后我创建了一个程序sptemptable

CREATE PROCEDURE sptemptable
        @T PayElementTable Readonly,--user type as parameter
    @CTCID int
    AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON; 

END
GO

我想要做的是我想从C#传递数据表为@T并循环上面存储过程中的@T记录,并在该循环中我想用参数调用另一个存储过程以及如何将参数传递给该程序。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

在另一个内部调用存储过程:

Execute yourSPName [coma separated parameter value list]

循环记录表:

Using Cursor in SQL

答案 1 :(得分:0)

不要使用光标。使用计数器变量

迭代记录的循环是昂贵的操作使用