【问题标题】:delete all constraint repl_identity_range from database从数据库中删除所有约束 repl_identity_range
【发布时间】:2018-07-09 13:43:56
【问题描述】:

我使用此代码并绑定我从复制创建的约束。 如何从我的数据库中批量删除此约束? 我想删除以repl_... 开头的每个表中的约束,如下所示:

repl_identity_range_B71717D4_E729_4EA9_A7DC_0953608A61FB

 select 
    object_name(constid) as "Constraint name",
    object_name(sysconstraints.id) as"Table name" ,
    [TEXT]
    from sysconstraints join syscomments on syscomments.id =sysconstraints.constid
     where object_name(constid) like  '%repl%' 
    order by [Table name]

【问题讨论】:

    标签: sql-server constraints replication


    【解决方案1】:

    遍历结果集,为每个约束定义构造一个适当的 ALTER TABLE 语句并执行它。

    也许您最好在 SQL 过程中执行此操作。

    【讨论】:

    • 不,没有足够详细的 SQL/PSM 语言来做到这一点,无论如何,SQL 过程语言在不同的 DBMS 之间可能会有很大的不同。大多数 DBMS 在标准化之前已经拥有某种形式的过程语言,并且几乎没有与标准的事后事实保持一致。您必须使用您正在使用的特定 DBMS 来标记问题。我的回答只有一点是要明确表示,如果你希望有一些神奇的单条 SQL 语句,你可以(很可能)结束希望。
    • 我使用 sql server 2014
    • 我找到了解决方案,这对我有用:此代码从所有表中删除约束复制孤立:但 StackOverflow 不允许我将答案或将长代码放在这里。我怎么能把答案放在这里?
    • 作为答案发布
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 2012-09-17
    • 2016-07-11
    • 2020-02-05
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多