gpt4 book ai didi

sql-server - 如何将数据表参数传递给存储过程sql server?

转载 作者:行者123 更新时间:2023-12-04 01:52:35 25 4
gpt4 key购买 nike

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

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

我使用 C#

最佳答案

您需要做几件事才能实现这一目标,因为您想要将表作为参数传递,您需要创建 (1) 表类型和 (2) 让您的存储过程接受该表的参数类型。

以下是创建 TABLE TYPE 所需的步骤。

表格类型

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

这个传递的参数将是只读参数,所以如果你需要操作传递给这个参数的值,你需要在你的过程中的表变量或临时表中获取这些值,然后才能进行任何更新或插入对它们的操作。

使用 C#

您可以使用 DataTable 类创建一个与 sql server 中的表类型相匹配的类型的新实例。像这样..

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);

关于sql-server - 如何将数据表参数传递给存储过程sql server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com