【发布时间】:2012-08-26 17:57:12
【问题描述】:
我是 c# 和 .Net 的新手,我需要你的帮助。
我在数据库中创建了一个接受表值参数(id 列表)的过程,并且我正在寻找适合 Oracle 关联数组的等价物。
--数据库中的新数据类型:
CREATE TYPE IDType AS TABLE
(
ID bigint
)
GO
-- DB Procedure
Create procedure TVP_PROC (@ID IDType readonly)
Declare @TVP IDType
Insert into @TVP select ID from @ID
As
Update my_tbl set id=(select ID from @TVP)
它应该像这样运行: exec TVP_PROC @ID //@ID is alist of id's
.Net 代码:
Public void UpdateID (List long<long> IDS )
{
Datatable datatable = new datatable ();
Datatable.columns.add (“IDS”,typeof(int64));
Foreach (int64 id in IDS)
{
Datatable.Rows.Add(id);
}
}
Var Query =hibernate.createsqlquery(“Exec TVP_PROC @ID:IDS”);
查询。 ??????
问题:
除了使用数据表变量并在每次迭代时分配 id 之外,还有其他首选的编写方式吗?
更重要的是,分配 table\list 变量的适当方法是什么?是否有任何表值\数组变量可以定义为这种数据类型?
【问题讨论】:
-
现在是 2012 年,带有表值参数。
-
非常感谢,效果很好!!!
标签: c# sql-server-2012