SQLSERVER创建该存储过程时不会出错,但是执行存储过程时报错
创建该存储过程时,不会出错,但是执行存储过程时,会报出下面这样的错误

这是因为在存储过程创建时,它先做语法检查,如果通过了语法检查,它会尝试解析它包含的对象名,如果存在也会解析该对象引用的对象是否存在。如果引用的对象名不存在,解析会在存储过程首次执行时触发。即在首次执行存储过程时,查询处理器从 sys.sql_modules 目录视图中读取该存储过程的文本,并检查该过程所使用的对象名称是否存在。这一过程称为延迟名称解析,因为存储过程引用的表对象不需要在创建该存储过程时就存在,而只需在执行该存储过程时存在。
注意:
只有当引用的表对象不存在时才能使用延迟名称解析。所有其他对象在创建所存储的过程时必须存在。例如,引用所存储的过程中的一个现有表时,不能列出该表不存在的列。
---存储过程删除中间表R_LDBG_B1_TEMP,但这条没执行成功。
if OBJECT_ID('R_LDBG_B1_TEMP','U') IS NOT NULL
drop table R_LDBG_B1_TEMP
原因分析: R_LDBG_B1_TEMP表字段结构在执行另一个存储过程时发生变化导致其它存储过程引用了不存在的字段。
执行存储过程时先解析,当发现引用表中不存在的字段就会直接报错,无法执行。
有两个解决办法:
1) 在外部编程执行存储过程前删除中间表。
2) 在存储过程内部执行最后删除中间表。
SQLSERVER创建该存储过程时不会出错,但是执行存储过程时报错的更多相关文章
- FetchType.LAZY 时属性加上@JsonIgnore,避免返回时报错:Could not write JSON: failed to lazily initialize a collection of role
[示例] @OneToMany(fetch=FetchType.LAZY) @JsonIgnore @Fetch(FetchMode.SELECT) @Cascade(value={CascadeTy ...
- SQLServer创建用户、数据库、表、约束、存储过程、视图
--创建登录账户和数据库用户 ' exec sp_grantdbaccess 'sysAdmin','aa' --给数据库用户赋权限 grant select,update,insert,delete ...
- sqlserver 创建对某个存储过程执行情况的跟踪
有时候需要抓取执行存储过程时某个参数的值,有时候程序调用存储过程执行后结果不太对,不确定是程序的问题还是存储过程的问题,需要单独执行存储过程看结果 即可用下面的方法 --=============== ...
- 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值
关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...
- 创建Android项目时出错——No resource found that matches the given name 'Theme.AppCompat.Light'
创建Android项目时出错,error: Error retrieving parent for item: No resource found that matches the given nam ...
- (转)创建DB2实例时出错,请大家帮忙解决
创建DB2实例时出错,请大家帮忙解决 原文:http://bbs.chinaunix.net/thread-3601748-1-1.html 运行:$DB2DIR/instance/db2icrt ...
- sqlserver创建存储过程返回table
--创建存储过程test create procedure [dbo].[test] ( @I_MTR NVARCHAR (MAX), @I_TYPE NVARCHAR (MAX), @I_FAC N ...
- SqlServer执行存储过程时,参数值为null,sql语句参数值变成default
从C#代码里传入参数到调用存储过程,参数的值为null,执行存储过程一直提示需要参数 '@xxx',但未提供该参数.通过profiler发现生成的参数值变成为default. 解决方案:1.将Para ...
- SqlServer创建数据表描述及列描述信息
SqlServer创建数据表描述及列描述信息 Intro Q: 为什么要创建描述信息? A: 鼠标悬停在对应表和列上时,会出现描述信息,可以提高工作的效率,借助工具我们根据数据表可以生成Model,可 ...
随机推荐
- Elasticsearch5.5通过案例学习简单操作
1. 建立员工目录 ES数据库对象与关系型数据库对象对比 Relational DB -> Databases -> Tables -> Rows -> ColumnsElas ...
- Failed to process import candidates for configuration class [com.simple.....]
主要原因: 是因为自己定制的starter在打包时(package)用了spring-boot-maven-plugin,即在你的定制starter工程的pom.xml中有如下配置: <buil ...
- MVC和MVVM对比
被误解的 MVC MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的 ...
- 1-express学习
1.在安装完node.js后,在Windows里面的cmd命令下,输入:express myapp --ejs 2.打开创建的工程myapp目录:cd myapp 3.安装:npm install 4 ...
- [Codeforces440D]Berland Federalization
Problem 给你一棵树,最少删掉哪些边,能使得余下的至少有1个大小刚好为k的残树. 1 ≤ k ≤ n ≤ 400 Solution 用f[i][j]表示以i为根有j个节点的最少删边数量 因为此题 ...
- Unity发布WebGl注意事项
unity 版本是5.5,不过看了2017的文档好像也是差不多,绝大部分都是根据官方文档,希望有帮助,如果有错误或者你知道更多这方面的只是,请告知下,大恩言谢. 1:对webgl发布的工程文件说明 ...
- SpringBoot(三)thymeleaf+JPA+MySql
接着上一节的 第一步:在pom文件中加入以下代码: <!--JPA--> <dependency> <groupId>org.springframework.boo ...
- 2456 Aggressive cows
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23866 Accepted: 11141 ...
- L2-018. 多项式A除以B*
L2-018. 多项式A除以B 参考博客 #include <iostream> #include <map> #include <cmath> #include ...
- QT | 记录自己遇到的报错
QT 常见报错,及相应对策 0. 遇到所有莫名其妙的问题(完全按照教程,但一直报错) 删除工程文件同级目录下的构建文件(以build开头的文件夹) 重新执行qmake 重新构建项目 检查所有的路径问题 ...