【问题标题】:Microsoft SQL - "Invalid column name" after deleting columnMicrosoft SQL - 删除列后出现“无效的列名”
【发布时间】:2017-07-06 01:43:04
【问题描述】:

我在 Microsoft SQL 管理工作室中使用 Azure SQL。我首先将名为ssma$rowid 的列重命名为ssmarowid,然后使用

删除了此列

ALTER TABLE "myCoolTable" DROP COLUMN "ssmarowid";

SQL 管理工作室提示我删除成功,但现在我尝试在我的表的不同列中运行任何 UPDATE 命令,我收到以下错误消息:

Invalid column name 'ssma$rowid'.

如果我尝试在没有脚本的情况下编辑单元格,通过右键单击我的表格,然后单击Edit top 200,我会收到以下错误消息:

The data in row xxx was not committed. Error Source: .Net SqlClient Data Provider. Error Message: Invalid column name 'ssma$rowid' Invalid column name 'ssma$rowid' Invalid column name 'ssma$rowid'

Correct the errors and retry or press ESC to cancel the change(s)

当我运行SELECT 语句时,ssma$rowid 列根本没有出现在我的表中,并且如果我显式尝试提取列 ssma$rowidssmarowid SQL 告诉我它们不存在.

我的专栏似乎在某个地方丢失了,我可以从哪里开始寻找我的流氓专栏?

【问题讨论】:

  • 我会首先检查表是否有可能引用旧列的触发器
  • 我对@9​​87654333@ 和ssmarowid 都进行了删除,尽管我遇到了@TimBiegeleisen 的错误,但现在控制台返回两者都不存在
  • 好的,谢谢@eugenioy 我会检查的
  • 如果事情仍然引用旧列,当然你会得到错误。你应该清理任何引用它的东西。如果您在该表上的编辑屏幕上打开了 SSMS,您可能需要关闭并重新打开它,以便它不会尝试更新不存在的列。
  • @eugenioy 的建议看起来不错;检查可能仍引用旧列的触发器。

标签: sql sql-server azure


【解决方案1】:

确保ALTER TABLE 声明括号之间的列,如下所示:

ALTER TABLE [myCoolTable] DROP COLUMN [ssmarowid];

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2020-04-24
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多