0

以下场景的最佳方法是什么?

在我的 C# 程序中,我有一些 sql 命令,例如 UPDATE、INSERT、DELETE。我可以在我的 C# 程序中执行它们(效果很好),但是当其中一个存储过程到达最后一行时,我需要执行这些 sql 命令。所以我打算将sql命令存储在同一个数据库中的某个临时表中,然后我想在存储过程中打开这个表并一一执行。

在存储过程中打开表然后根据某些条件遍历表的最佳方法是什么(例如 select * from TempStagingTable where customerId = '1000')。如果它返回 10 条记录,我想循环它们并执行存储在名为“CustomSqlScript”的列中的 sql 命令

PS:我使用的是 SQL 2008 R2。

4

1 回答 1

1

好吧,您最初可以从表 A 中选择数据,而不是使用游标,您可以使用 while 循环(因为与游标相比,它会提高您的性能)然后您可以从表 B 中执行预定义的 SQL 语句

请在下面找到执行相同操作的 sql 脚本

请注意:我没有使用任何关系,这只是一个简单的例子

CREATE TABLE test1(
  customSqlScripts VARCHAR(100)
)

CREATE TABLE test2(
 customer_Id INT PRIMARY KEY ,
 first_Name VARCHAR(100),
 last_name  VARCHAR(100)
)

 INSERT INTO test1 VALUES('Select first_Name from test2 where customer_Id=')
 INSERT INTO test2 VALUES('1','Rohit','Tiwari')

 DECLARE @Count INT
 DECLARE @iCount INT=0
 DECLARE @dummysql VARCHAR(100)

 SELECT @Count= Count(*) 
 FROM test2 
 WHERE last_name='Tiwari'

 WHILE(@icount<@count)
 BEGIN
  SELECT @dummysql =customSqlScripts 
  FROM test1
  SET @dummysql=@dummysql+'1'
  EXEC (@dummysql)
  SET @icount=@icount+1
 END
于 2013-09-21T10:19:21.907 回答