以下情景的最佳方法是什么?
在我的C#程序中,我有一些sql命令,如UPDATE,INSERT,DELETE。我可以在我的C#程序中执行它们(工作正常)但我需要在其中一个存储过程到达最后一行时执行这些sql命令。所以我打算将sql命令存储在同一个数据库的某个临时表中,然后我想在存储过程中打开这个表并逐个执行。
在存储过程中打开表然后根据某些条件遍历表的最佳方法是什么(例如select * from TempStagingTable,其中customerId ='1000')。如果它返回10条记录,我想循环它们并执行存储在名为“CustomSqlScript”的列中的sql命令
PS:我正在使用SQL 2008 R2。
答案 0 :(得分: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