C# 如何在不创建类型或循环的情况下将数据表传递给存储过程中的表数据类型?

C# 如何在不创建类型或循环的情况下将数据表传递给存储过程中的表数据类型?,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,我需要使用表数据类型来获取数据表,而无需循环或创建类型 例如下面的例子 将数据表从C#传递到@tbl create proc testtbl (@tbl TABLE (col nvarchar(50))) as begin INSERT INTO tbl( column ) SELECT col FROM @tbl end 请指定您使用的sql的版本/实现好吗?我使用sql 2008-不创建类型就无法使用表数据类型?我不这么认为。您有一些选项:

我需要使用表数据类型来获取数据表,而无需循环或创建类型

例如下面的例子

将数据表从C#传递到
@tbl

 create proc testtbl (@tbl TABLE (col nvarchar(50)))
 as 
 begin
     INSERT INTO tbl( column )
       SELECT col
       FROM @tbl
 end 

请指定您使用的sql的版本/实现好吗?我使用sql 2008-不创建类型就无法使用表数据类型?我不这么认为。您有一些选项:1)将您的值与一些分隔符(例如管道或逗号)连接成一个VARCHAR(MAX)并传入值——然后在您的进程中解析该值。2) 使用spid和col创建一个中间表,用值和当前spid填充它,然后将spid传递给您的进程。