C# 在存储过程中循环插入查询

C# 在存储过程中循环插入查询,c#,sql-server,arrays,stored-procedures,sql-server-2000,C#,Sql Server,Arrays,Stored Procedures,Sql Server 2000,是否可以在存储过程中插入类似数据集/数组的内容,然后在存储过程中插入循环insert语句?我有一个项目,将在一个表中插入15条记录。目前,我正在我的c代码中进行循环。但有时15条记录中有1条不会被插入。我想做一些事情,回滚或删除插入的记录时,至少1没有插入。我不能在c中执行回滚,所以在我的sql存储过程中是否可以这样做?你能举个例子吗?提前感谢。一个完美的解决方案是表值参数。C不支持使用它们。检查我先前的答案 但是,由于您使用的是古老的技术SQL 2000,因此不支持它 帮自己一个忙,升级一下

是否可以在存储过程中插入类似数据集/数组的内容,然后在存储过程中插入循环insert语句?我有一个项目,将在一个表中插入15条记录。目前,我正在我的c代码中进行循环。但有时15条记录中有1条不会被插入。我想做一些事情,回滚或删除插入的记录时,至少1没有插入。我不能在c中执行回滚,所以在我的sql存储过程中是否可以这样做?你能举个例子吗?提前感谢。

一个完美的解决方案是表值参数。C不支持使用它们。检查我先前的答案

但是,由于您使用的是古老的技术SQL 2000,因此不支持它

帮自己一个忙,升级一下

唯一的限制是一些依赖于SQL 2000安全模型的应用程序。在我的老公司,我们有一个应用程序,无法升级,因为这一点。此外,他们也不愿意花美元。第22条

我想问题是有多少进程在调用这个存储过程

你总是可以做以下事情

1-在C应用程序中创建动态临时表

2-用C中的数据加载表格

3-将动态临时表的名称传递给存储过程

4-在事务中,执行以下操作

BEGIN TRAN
INSERT INTO [TAGET TABLE]
SELECT * FROM [STAGING TABLE];

IF (@@ERROR <> 0)
BEGIN
ROLLBACK;
RETURN;
END

COMMIT
5-最后但并非最不重要的一点,删除动态声明表

我不知道这是否能让你有所收获,因为c应该支持事务

带有事务的ADONET C程序示例


谢谢marc的快速回复!但是,我忘了提到我们正在使用SQLServer2000。有类似的功能吗?没有,2005年常用的替代方法——使用XML数据类型——在2000年也不起作用。SQL Server 2000真的太旧了-所以我们今天做的大多数事情都不能在那个非常古老的版本中工作了-很抱歉-希望您能尽快升级!我懂了。好的,我建议他们升级。真是太落后了!一旦一个版本甚至失去了扩展支持,就真的到了升级的时候了!从商业的角度来看,这也是危险的——再也没有更新了。是时候升级了!我忘了告诉你,你的回答对我帮助很大。非常感谢