检查表是不是存在后,将架构添加到 SQL 中的缺失表
Posted
技术标签:
【中文标题】检查表是不是存在后,将架构添加到 SQL 中的缺失表【英文标题】:add schema to a missed table in SQL after checking if the table exists检查表是否存在后,将架构添加到 SQL 中的缺失表 【发布时间】:2017-10-18 15:18:50 【问题描述】:我正在尝试将架构添加到丢失的表“myTable”中。我希望表格位于 'dbo.myTable' 下
编辑
我无法添加代码,但不允许堆栈溢出。我想检查 sys.tables 中是否存在并进行更改架构传输。
【问题讨论】:
完全不清楚。 CREATE TABLE IF NOT EXISTS equivalent in SQL Server的可能重复 How do I move a table into a schema in T-SQL的可能重复 我无法添加代码,但堆栈溢出不允许。我想检查 sys.tables 中是否存在并进行更改架构传输。 【参考方案1】:SQL Server 中的表将始终属于一个模式,默认设置下,如果未指定其他表,它将属于 dbo 模式。
【讨论】:
【参考方案2】:默认架构是dbo
,但如果由于某种原因它位于不同的架构中,您可以将表从alter schema
transfer
转换为transfer
。
alter schema dbo transfer [current_schema_name].mytable;
如果表存在,则要传输架构,您可以使用以下内容:
if exists (select 1
from sys.objects o
where schema_name(o.schema_id)<>N'dbo'
and o.name = 'mytable'
)
alter schema dbo transfer test.mytable;
rextester 演示:http://rextester.com/TEBRQL57704
【讨论】:
有没有办法检查 sys.tables 中的表是否存在并像你的答案一样执行改变模式? 是的,这是可能的。 @GK_Starts_Coding 乐于助人!以上是关于检查表是不是存在后,将架构添加到 SQL 中的缺失表的主要内容,如果未能解决你的问题,请参考以下文章