Dib*_*bin 6 sql t-sql database sql-server
我有一个表,它在表的列之一中存储动态构造的T SQL查询.我的要求是,我需要执行形成查询(在我的情况,一些INSERT语句),而且我不想使用while循环 "遍历整个行,然后执行从变量的声明.我也不想使用光标.该表有大约500万个动态形成的SQL插入语句.我之前使用while循环尝试了这个东西,但它需要几天才能完成,所以我放弃了它.
必须查一下“十万”是什么:)
正如其他评论提到的,这不是 DML 的最佳方法,请考虑重构。事实上,您可以批量组合动态 SQL,例如:
DECLARE @sSQL nvarchar(max)
SET @sSQL = 'BEGIN TRAN; '
SELECT @sSQL = @sSQL + COLUMN_WITH_INSERT_STATEMENT + '; '
FROM TABLE
WHERE [limit number of rows]
SET @sSQL = @sSQL + 'COMMIT TRAN '
EXEC(@sSQL)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以将受控数量的 INSERT 语句组合到单个事务中。您可以通过 WHERE 语句控制插入数量(例如WHERE ID BETWEEN 1 and 100
一次执行 100 个 INSERT)您可以循环通过此条件(是循环,但它不会循环通过各个行,而是通过条件循环,例如 1 - 100, 101 - 200、201 - 300 等)。
归档时间: |
|
查看次数: |
10284 次 |
最近记录: |