如何从 SQL Server 数据库中删除所有外键?

2024-03-16

我想删除具有以下条件的所有外键。

SELECT CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME IN ('Table1', 'Table2')
  AND CONSTRAINT_NAME LIKE '%FK__%__DL%'

有一个表名为INFORMATION_SCHEMA.TABLE_CONSTRAINTS它存储所有表约束。约束类型FOREIGN KEY也保存在该表中。因此,通过这种类型的过滤,您可以访问所有外键。

SELECT  *
FROM    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE   CONSTRAINT_TYPE = 'FOREIGN KEY'

如果您创建动态查询(例如DROP-外键)来改变表,可以达到改变所有表的约束的目的。

WHILE(EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_NAME IN ('Table1', 'Table2') AND CONSTRAINT_NAME LIKE '%FK__%__DL%'))
BEGIN
    DECLARE @sql_alterTable_fk NVARCHAR(2000)

    SELECT  TOP 1 @sql_alterTable_fk = ('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']')
    FROM    INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE   CONSTRAINT_TYPE = 'FOREIGN KEY'
            AND TABLE_NAME IN ('Table1', 'Table2')
            AND CONSTRAINT_NAME LIKE '%FK__%__DL%'

    EXEC (@sql_alterTable_fk)
END

EXISTS函数及其参数确保外键至少有一个约束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 SQL Server 数据库中删除所有外键? 的相关文章

  • 如何使用内联 SQL 参数化 IN 语句的集合? [复制]

    这个问题在这里已经有答案了 可能的重复 参数化 SQL IN 子句 https stackoverflow com questions 337704 parameterizing a sql in clause 你好 我有一个查询 如下所示
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 返回年份数组作为年份范围

    我正在尝试查询一个包含以下内容的表character varying 年份列 并将这些年份作为逗号分隔的年份范围字符串返回 年份范围将由数组中存在的连续年份确定 不连续的年份 年份范围应以逗号分隔 数据类型的原因是character var
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • 无论如何要解密加密的sql server存储过程吗?

    我有几个 ms sql server 2000 存储过程 很久以前就被前雇员加密了 一切都很好 直到我们需要稍微改变一下 有什么方法可以检索源代码吗 或者重写是唯一的选择 多谢 或者免费 谷歌是你的朋友 http searchsqlserv
  • mysql LIKE 查询时间太长

    SQL SELECT COUNT usr id as total results FROM users as usr LEFT JOIN profile as prof ON prof uid usr uid WHERE usr usern
  • 如何将列中的天数添加到 DB2 中的当前日期?

    我正在编写此 SQL 来动态计算一定的天数 如下所示 但我不知道如何让它工作 因为我不断收到错误 select Current Date Dynamic numbr of days calculation here from TableNa
  • 如何查询集成服务目录

    问题 识别连接到 SQL Server 上特定数据库表的所有 SSIS 包 详细信息 服务器上部署了近 100 个包 大多数包的大小都很大 因此很难以高精度手动检查它们 有没有一种快速且自动化的方法来做到这一点 使用 SQL Server
  • 获取一组记录之间的时间差

    我有一个具有以下结构的表 ID ActivityTime Status 19 2013 08 23 14 52 1 19 2013 08 23 14 50 1 19 2013 08 23 14 45 2 19 2013 08 23 14 3
  • 无重复组合的交叉连接

    我知道这个问题与这个问题非常相似 对称交叉连接 https stackoverflow com questions 12490244 symmetric cross join还有这个 sql 中交叉连接的组合 不是排列 https stac
  • 日志中每天的每周活跃用户数

    我想知道是否有人可以帮助我使用一些 SQL 来返回两天或更长时间内登录到数据库表的唯一用户数量 让我们使用 7 天作为参考 我的日志表在每一行中包含时间戳 ts 和 user id 表示该用户当时的活动 以下查询返回此日志中的每日活跃用户数
  • 如何从 SQL Server 中的 SELECT 进行更新?

    In SQL服务器 可以将行插入到带有INSERT SELECT陈述 INSERT INTO Table col1 col2 col3 SELECT col1 col2 col3 FROM other table WHERE sql coo
  • 有没有办法在插入查询中执行另一个查询?

    好的 这是我的查询 我刚刚添加了 ACCOUNTID 和 accountID 部分 这显然不起作用 INSERT INTO Leads LEADID CREATEUSER CREATEDATE FIRSTNAME MODIFYDATE AC
  • 如何在 SQL Server 中创建文件格式

    我正在尝试在 SQL Server 2017 中试验外部文件 但在第一步中遇到了困难 数据是管道分隔的 我试图遵循文档中的语法 这需要一个FILE FORMAT 以下是 Microsoft 的语法 CREATE EXTERNAL TABLE
  • postgresql 中的锁定表

    我有一个名为 games 其中包含一个名为 title 该列是唯一的 数据库中使用PostgreSQL 我有一个用户输入表单 允许他插入新的 game in games 桌子 插入新游戏的功能会检查之前输入的游戏是否存在 game 与相同的
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 在 SQL Server 中通过标准差消除异常值

    我试图通过标准差消除 SQL Server 2008 中的异常值 我只想要特定列中包含该列平均值的 1 标准差范围内的值的记录 我怎样才能做到这一点 如果您假设事件呈钟形曲线分布 则只有 68 的值与平均值相差 1 个标准差以内 95 的值
  • Postgres 中 -Infinity 和 Infinity 的适当值

    在一种情况下 我们必须在 Postgres DB 中存储 无穷大和 无穷大的值 应该考虑什么合适的值 如果没有 请建议最合适的替代方案 你实际上可以使用 infinity and infinity for FLOAT4 and FLOAT8
  • 如何在Oracle中从表中选择列,*?

    我正在创建很多脚本 有时为了检查表是否根据我的需要进行更新 我会即时编写几个 SELECT 语句 在 SQL SERVER 中你可以这样写 SELECT Column1 FROM MY TABLE 出于可见性原因 这很有用 但是这似乎在 O
  • 如何在事务中使用链接服务器插入远程表?

    我的链接服务器设置正确 我能够执行以下查询 插入 远程服务器 表 SELECT FROM 本地服务器 表 然而当我做同样的事情时交易内 开始传输 插入 远程服务器 表 SELECT FROM 本地服务器 表 提交交易 我收到类似的错误 用于

随机推荐

  • 如何扩展具有动态形成选择器的类/混合

    如何扩展使用 组合器动态形成的 Less 类 less 产生预期输出 hello world color red foo extend hello world font size 20px 预期的 CSS 输出 hello world fo
  • pandas 数据框任意两列之间的百分比差异

    我想定义一个函数来计算任意两个 pandas 列之间的百分比差异 假设我的数据框是由以下定义的 R1 R2 R3 R4 R5 R6 A B 1 2 3 4 我希望我的计算定义为 df R7 df R3 R4 apply method cal
  • 如何分组并根据总和过滤数据框?

    所以我有一个数据框 milk countries exports 它由以下列组成 期间 特定行的年份和月份 数据集是一年中的逐月 正在做出口的 记者 国家 从 报告者 进口的 伙伴 国家 商品 由 2 项组成 既不浓缩也不加糖的牛奶和奶油
  • SqlDataReader 检查空值的最佳方法 -sqlDataReader.IsDBNull 与 DBNull.Value

    我想从数据库中检索十进制值 并且想知道检查空值的推荐方法 我见过MSDN DBNull Value 字段 http msdn microsoft com en us library system dbnull value aspx该检查很少
  • 如果我递增数组变量会发生什么?

    我知道如果指针位于堆上 则更改指针的地址是不安全的 因为稍后释放它会引起一些麻烦 但是如果指针在堆栈上声明 那么这样做安全吗 我正在谈论这样的事情 char arr one two three arr or arr 我希望我通过将 char
  • Vaadin 在另一个浏览器/选项卡/系统中关闭同一用户的 UI

    我正在 Vaadin 7 中做一个项目 我需要实现如下所示的登录功能 用户 A 登录到系统 1 他再次登录到另一个系统 2 现在我想知道如何关闭系统 1 上的用户界面 我尝试了一些方法 如果是同一个浏览器 可以关闭用户界面 但是 对于不同的
  • 可编辑组合框[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我必须创建一个可编辑的组合框 组合框包含姓名 年龄和城市 用户可以输入姓名 年龄或城市 组合框必须过滤所有包含的列表 并应显示相关列表 Eg
  • 如何在命名空间之间复制数据存储实体

    我想将一个命名空间 例如 www mysite com 中的所有数据复制到另一个命名空间 例如 nightly latest mysite appspot com 最好的方法是什么 示例命名空间不是随机的 它们是由 NamespaceFil
  • Javascript/jquery,获取 (x,y) 处的所有 div 位置。转发触碰? [复制]

    这个问题在这里已经有答案了 可能的重复 如何获取位于单击点的所有元素的列表 https stackoverflow com questions 3735278 how to get a list of all elements that r
  • 无法启动 RMI Fibonacci 服务器

    我正在学习 Java RMI 并且创建了一个非常简单的服务器来计算斐波那契数 服务器 FibonacciServer 创建一个负责计算序列 Fibonacci 的对象 并且该对象实现一个接口 IFibonacci FibonacciServ
  • UPDATE 后的 @@ROWCOUNT 是否可靠地衡量*匹配*行?

    Does ROWCOUNT可靠地告诉你有多少行matched the WHERE条款中的UPDATE 而不是实际有多少changed by it In 的文档 ROWCOUNT http msdn microsoft com en gb l
  • 设置我所有表单的可本地化属性

    有没有办法自动设置此属性 我们有数百种表单需要本地化 将所有这些表单设置为 true 将是一场噩梦 有没有办法让 Visual Studio 将解决方案 项目中的所有表单设置为 Localized true 当您创建一个新的Windows窗
  • 使用rails中的link_to在锚标记上指定附加属性

    假设我想要在 Rails 中输出这样的 html a href Action a 如何使用 Rails 中的 link to 帮助程序指定属性 角色和 tabIndex 查看link to 的 Rails 文档 http api rubyo
  • Android Studio 2.0 - 应用程序首次运行时暂停/白屏

    自从升级到 Android Studio 2 0 稳定版 以来 我注意到一个问题 而我安装的以前版本的 Android Studio 1 5 中不存在这个问题 我正在开发一个当前项目 我将在真实设备和模拟器上构建 调试版本 并运行该项目 我
  • 自定义Android通知声音

    我正在尝试在我的应用程序中实现自定义通知声音 我编写了以下代码 但应用程序仅播放默认声音 而不播放我在原始文件夹中添加的自定义声音 收到通知后 日志甚至不会抛出任何错误或异常来说明为什么不播放自定义声音 我尝试在网上搜索并尝试采用不同的方法
  • 如何在执行connectedAndroidTest时不运行特定测试?

    执行我们的一些仪器测试需要很长时间 因此 当我运行所有其他仪器测试时 我不想运行它们gradle connectedAndroidTest 为什么我不注释这些测试 Ignore http junit sourceforge net java
  • 像 Tinder 一样滑动浏览照片堆栈 - 跨平台(混合/HTML5 都可以)

    我希望创建一个像 Tinder 这样的应用程序 用户可以在其中滑动照片堆栈 有谁知道跨平台重现这种效果的方法吗 到目前为止 我正在考虑使用 jQuery Mobile 构建一个 Web 应用程序 TouchSwipe 用于滑动检测 看 ht
  • UTF-16 perl 输入输出

    我正在编写一个脚本 它将 UTF 16 编码的文本文件作为输入并输出 UTF 16 编码的文本文件 use open encoding UTF 16 open INPUT lt input txt or die cannot open gt
  • 用 JavaScript 替换非数字字符?

    我使用正则表达式 90 2 5 1 0 9 9 用于电话验证 但是当有人输入任何特殊字符 例如 在输入中 我想用空字符串替换字符 删除它们 请注意 我不想替换 我怎样才能做到这一点 这将删除给定字符串中的所有非数字字符 myString m
  • 如何从 SQL Server 数据库中删除所有外键?

    我想删除具有以下条件的所有外键 SELECT CONSTRAINT NAME FROM INFORMATION SCHEMA TABLE CONSTRAINTS WHERE TABLE NAME IN Table1 Table2 AND C