SQL Server 存储过程嵌套处理 错误提示:INSERT EXEC 语句不能嵌套
来源:互联网 发布:如何编写app软件 编辑:程序博客网 时间:2024/06/05 20:29
模拟一个环境,在存储过程P2调用存储过程P1,需保存P1的结果集
网友原贴
测试报错信息提示:
IF OBJECT_ID('P1','P') IS NOT NULLDROP PROC P1;GOCREATE PROC P1ASSET NOCOUNT ON;IF OBJECT_ID('Tempdb..#1') IS NOT NULLDROP TABLE #1;CREATE TABLE #1(ID int);INSERT INTO #1 ( ID )EXEC('SELECT 1');SELECT * FROM #1;DROP TABLE #1;GOIF OBJECT_ID('P2','P') IS NOT NULLDROP PROC P2;GOCREATE PROC P2ASSET NOCOUNT ON;IF OBJECT_ID('Tempdb..#2') IS NOT NULLDROP TABLE #2;CREATE TABLE #2(ID int);INSERT INTO #2 ( ID )EXEC P1SELECT * FROM #2;DROP TABLE #2;GOEXEC P2GO
报错信息:
消息 8164,级别 16,状态 1,过程 P1,第 37 行INSERT EXEC 语句不能嵌套。
原因:当P2调用P1时,发现P1用到 动态语句 insert into ...exec,P2同时出用到P1的结果集 insert into ... exec P1 造成的
注意事项:当存储过程嵌套时,临时表别重命,改变结构时会报错
解决方法:
把P1改改
ALTER PROC P1 AS SET NOCOUNT ON; IF OBJECT_ID('Tempdb..#1') IS NOT NULL DROP TABLE #1; CREATE TABLE #1(ID int); EXEC('INSERT INTO #1 ( ID ) SELECT 1; ')SELECT * FROM #1; DROP TABLE #1; GOEXEC P2/*--显示结果集ID1*/
网友原贴
2 0
- SQL Server 存储过程嵌套处理 错误提示:INSERT EXEC 语句不能嵌套
- SQL SERVER INSERT EXEC嵌套问题解决方案
- INSERT EXEC 语句不能嵌套 原因说明和 解决办法
- INSERT EXEC PROC不能嵌套的解决方法
- SQL Server 存储过程之嵌套游标
- SQL Server 存储过程之嵌套游标
- SQL Server 存储过程之嵌套游标
- SQL Server 存储过程生成insert语句
- SQL Server 存储过程嵌套示例SQL Server 存储过程嵌套示例
- SQL Server 存储过程嵌套示例SQL Server 存储过程嵌套示例
- sql server 函数,存储过程,游标以及while和if语句的嵌套使用
- 转: INSERT EXEC PROC不能嵌套的解决方法
- SQL SERVER 2000 嵌套 存储过程 事务 回滚
- SQL Server-- 存储过程中错误处理
- SQL Server-- 存储过程中错误处理
- SQL Server-- 存储过程中错误处理
- SQL游标嵌套例子+游标嵌套存储过程
- ibatis 嵌套insert select语句
- C++专项练习错题分析(1)
- WCF:如何将net.tcp协议寄宿到IIS
- 彻底学会使用epoll(四)——ET的写操作实例分析
- hdu 5867
- 将动态库打包在Jar包并调用的方法
- SQL Server 存储过程嵌套处理 错误提示:INSERT EXEC 语句不能嵌套
- 分布式服务框架 Dubbo
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- c++ find 在容器中查找元素
- 彻底学会使用epoll(五)—— ET模式下的注意事项
- Notificationt通知栏使用详解
- Message Flood 【排序--二分查找】
- 数据结构——13 队列链表描述
- java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)