【问题标题】:How to drop table with the same name in two different schemas with sql query如何使用 sql 查询在两个不同的模式中删除具有相同名称的表
【发布时间】:2019-08-28 12:52:31
【问题描述】:

创建表时未在查询中指定架构。在不同的数据库中,该表出现在不同的位置。现在我需要编写一个查询,以便在其他所有数据库中删除它 一个简单的 'drop table table_name' 似乎只在 dbo 模式中删除它。
问题是第二个架构名称在不同的数据库中可能不同,所以我无法指定它。

【问题讨论】:

标签: sql-server sql-server-2017


【解决方案1】:

试试这个最常见的查询:

IF EXISTS(
      SELECT *  FROM [yourdatabase].sys.tables tbl
      JOIN [yourdatabase].sys.schemas ss
        ON tbl.SCHEMA_ID = ss.SCHEMA_ID 
      WHERE 
          tbl.name = N'TableName' AND tbl.type='U' 
      AND ss.NAME = 'SchemaName'
    )
      DROP TABLE [yourdatabase].[SchemaName].[TableName];

【讨论】:

  • 事情是第二个模式名称在不同的数据库中可能会因用户而异,所以我无法指定
猜你喜欢
  • 2017-11-16
  • 2022-01-15
  • 2018-03-26
  • 2021-04-11
  • 1970-01-01
  • 2013-02-13
  • 2014-09-20
  • 1970-01-01
  • 2020-12-06
相关资源
最近更新 更多