【问题标题】:vsdbcmd.exe generate drop constraint instructions without constraint namevsdbcmd.exe 生成不带约束名的删除约束指令
【发布时间】:2013-07-16 03:57:15
【问题描述】:

使用 vsdbcmd.exe 在两个 dbschema 之间生成差异脚本时,有时会得到一个意外的输出,其中包含一些没有约束名称的删除约束:

GO
PRINT N'Dropping On column: ColumnName ...';    

GO
ALTER TABLE TableName DROP CONSTRAINT ;

在我们的架构中,此列具有默认值约束,具有自动生成的名称。我希望 vsdbcmd.exe 生成一个有效的 ALTER TABLE sql 语句,如 msdn 库中指定的那样:

ALTER TABLE [数据库名称。 [模式名称]。 |模式名称。 ] table_name DROP { [ CONSTRAINT ] 约束名 | COLUMN 列名 }

您知道什么会阻止 vsdbcmd.exe 生成有效的 sql 语句吗?

【问题讨论】:

  • 经过进一步调查,这仅在约束具有生成的名称时发生。明确命名的 constrained 不受影响。

标签: sql-server diff vsdbcmd


【解决方案1】:

仅当约束具有生成的名称时才会出现此问题。明确命名的约束不受影响。 因此,这个解决方案是为每个约束命名。

【讨论】:

    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多