定义游标时使用动态SQL
2019-08-15 10:58
1181 查看
原文链接:https://www.geek-share.com/detail/2501829863.html
EXECUTE sp_executesql @sql
在定义游标时,我们一般是这样定义的:
DECLARE cur CURSOR FOR SELECT * FROM tableName
OPEN cur
FETCH NEXT FROM cur
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cur
END
CLOSE cur
DEALLOCATE cur
但是有时候需要用到动态SQL,一般情况下我们想到的方法是:
DECLARE @sql nvarchar(1000)
SET @sql='SELECT * FROM tableName ’
DECLARE cur CURSOR FOR
EXECUTE sp_executesql @sql
OPEN cur
FETCH NEXT FROM cur
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cur
END
CLOSE cur
DEALLOCATE cur
但是这种写法是错误的,正确的应该是:
DECLARE @sql nvarchar(1000)
SET @sql=‘DECLARE cur CURSOR FOR SELECT * FROM tableName’
EXECUTE sp_executesql @sql
OPEN cur
FETCH NEXT FROM cur
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cur
END
CLOSE cur
DEALLOCATE cur
相关文章推荐
- 定义游标时使用动态SQL
- 如何在定义游标的时候使用动态sql语句
- 【原创】定义游标时使用动态SQL语句
- 如何在定义游标的时候使用动态sql语句?
- 如何在定义游标的时候使用动态sql语句?
- function中使用动态sql和游标
- oracle pl/sql 入门+ 数组使用+游标+动态SQL
- sql 游标的定义与使用
- 在PL/SQL使用游标获取数据及动态SQL
- 如何在游标for循环中使用动态SQL语句?
- oracle函数返回结果集(动态查询Sql并定义游标)
- MS-SQL 动态sql使用游标
- 如何在游标for循环中使用动态SQL语句?
- oracle函数返回结果集(动态查询Sql并定义游标)
- 【MySQL】视图,触发器,函数,存储过程,事务,动态执行SQL定义及使用
- 游标使用 和sp_executesql动态sql
- 为表添加排序字段 (动态SQL、游标的使用)
- 游标变量、动态sql及变量绑定的使用
- 整理:oracle pl/sql 入门+ 数组使用+游标+动态SQL
- 删除所有的用户表,存储过程,游标的应用,动态SQL的使用