user-defined TableType
在您的数据库中创建一个:
CREATE TYPE [dbo].[MyTableType] AS TABLE(
[Id] int NOT NULL,
[Name] [nvarchar](128) NULL
)
并在您的中定义一个参数Stored Procedure
:
CREATE PROCEDURE [dbo].[InsertTable]
@myTableType MyTableType readonly
AS
BEGIN
insert into [dbo].Records select * from @myTableType
END
并将您的DataTable
直接发送到sql server:
using (var command = new sqlCommand("InsertTable") {CommandType = CommandType.StoredProcedure})
{
var dt = new DataTable(); //create your own data table
command.Parameters.Add(new sqlParameter("@myTableType", dt));
sqlHelper.Exec(command);
}
要编辑存储过程中的值,可以声明具有相同类型的局部变量,然后将输入表插入其中:
DECLARE @modifiableTableType MyTableType
INSERT INTO @modifiableTableType SELECT * FROM @myTableType
然后,您可以编辑@modifiableTableType
:
UPDATE @modifiableTableType SET [Name] = 'new value'