Sql server 如何将datatable参数传递给存储过程sql server?

Sql server 如何将datatable参数传递给存储过程sql server?,sql-server,stored-procedures,datatable,Sql Server,Stored Procedures,Datatable,我需要将数据表传递给以下存储过程 create procedure insert_data (@a int , @b DataTable) as Begin ...... end 我使用C#您需要做几件事来实现这一点,因为您希望将表作为参数传递,因此需要创建(1)表类型,并(2)使存储过程接受该类型的参数 以下是创建表类型所需的步骤 表格类型 CREATE TYPE dbo.DataTable AS TABLE ( -- define table structure here

我需要将数据表传递给以下存储过程

 create procedure insert_data
(@a int ,
@b DataTable)
as 
Begin 
......
end

我使用C#

您需要做几件事来实现这一点,因为您希望将表作为参数传递,因此需要创建(1)表类型,并(2)使存储过程接受该类型的参数

以下是创建表类型所需的步骤

表格类型

CREATE TYPE dbo.DataTable AS TABLE 
 (
    -- define table structure here
  )
 GO
程序

现在让您的过程接受该表类型的参数

create procedure insert_data
@a int ,
@b dbo.DataTable READONLY    --<-- Note this is read only param
as 
Begin 
......
end

sql的数据类型是什么?例如sqltype.string,,的类型是什么table@user3409439-数据类型取决于您在数据库中对类型的命名。在这种情况下,它将是
dbo.DataTable
DataTable dt = new DataTable("DataTable"); 

// Add columns to this object same as the type in sql server

dt.Columns.Add("Column1", typeof(string)); 
dt.Columns.Add("Column2", typeof(Int32)); 

//Populate the dt object 

dt.Rows.Add("Value1", 1); 
dt.Rows.Add("Value2", 2); 
dt.Rows.Add("Value2", 3);