Sql server 2008 如何在存储过程中调用存储过程?

Sql server 2008 如何在存储过程中调用存储过程?,sql-server-2008,stored-procedures,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,

我正在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
然后我创建了一个过程
sptentable

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
我想做的是将datatable作为
@T
从C#传递,并循环通过上述存储过程中的
@T
记录,在该循环中,我想调用另一个带参数的存储过程,以及如何将参数传递给该过程


我该怎么做

在另一个存储过程中调用存储过程:

Execute yourSPName [coma separated parameter value list]
在表的记录中循环:


在另一个存储过程中调用存储过程:

Execute yourSPName [coma separated parameter value list]
在表的记录中循环:


不要使用光标。当循环使用计数器变量迭代记录时,操作成本很高。不要使用光标。使用while循环迭代带有计数器变量的记录是一项成本高昂的操作

,而不是在循环中调用存储过程。如果可能,您应该尝试找到一种基于集合的解决方案,将所有行一起处理。感谢martin的指导,但我不知道有任何基于集合的解决方案可以将所有行一起处理。如果需要,请指导我Knower需要知道存储过程的功能。您可能会觉得这很方便,而不是在循环中调用存储过程。如果可能,您应该尝试找到一个可以同时处理所有行的基于集合的解决方案。感谢martin的指导,但我不知道任何可以同时处理所有行的基于集合的解决方案。如果您知道需要了解存储过程的功能,请指导我。您可能会发现如何循环@T table中的所有记录非常方便。您需要使用游标来循环表记录。已编辑的解决方案提供了有关使用游标的链接。如何循环@T table中的所有记录您需要使用游标在表记录中循环。已编辑的解决方案,以提供有关使用光标的链接。