繁体   English   中英

从 SQL 服务器中的表中删除特定列时,更改存储过程不会引发“无效列名”错误

[英]Altering a stored procedure not throwing “Invalid column name” error when that particular column is removed from the table in SQL Server

我从存储过程中引用的表中删除了一个列。 当我更改该存储过程时,没有错误,但是在执行它时,出现错误

列名无效

被抛出。

我正在使用 SSMS 2017

您正在寻找称为“模式绑定”的功能。 这意味着如果 object 在视图或存储过程中被引用,则无法更改它的架构。

这是在依赖级别上处理的,而不是在原始 object 上处理。 开始的地方是SCHEMABINDING上的文档。

在实践中,这意味着以下程序:

  1. 更改 object(即表)。
  2. 获取架构绑定错误。
  3. 删除引用原始 object 的所有对象的模式绑定选项。
  4. 修改原来的object。
  5. 修改依赖对象。
  6. 确保模式绑定重新“打开”依赖对象。

这有点麻烦,但它有助于强制执行数据库依赖关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM