gpt4 book ai didi

sql - 为什么在检查表是否存在时使用 OBJECT_ID

转载 作者:太空狗 更新时间:2023-10-30 01:38:39 26 4
gpt4 key购买 nike

我需要检查 SQL 中的表是否存在。

如果没有,它必须自动创建一个。

现在我研究并找到了这段代码:

IF  NOT EXISTS (SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'[dbo].[YourTable]') AND type in (N'U'))

BEGIN
CREATE TABLE [dbo].[YourTable](
....
....
....
)

END

谁能解释为什么它说 where object_id = OBJECT_ID 以及我应该放什么?

最佳答案

我喜欢这种语法:

if(object_id(N'[dbo].[YourTable]', 'U') is not null)
...

其中object_id以2char类型的object作为第二个参数。您可以在 sys.objects documentation 中找到下面列出的对象类型列表。 :

  • AF = 聚合函数 (CLR)
  • C = CHECK 约束
  • D = DEFAULT(约束或独立)
  • F = FOREIGN KEY 约束
  • FN = SQL 标量函数
  • FS = 程序集 (CLR) 标量函数
  • FT = 汇编 (CLR) 表值函数
  • IF = SQL 内联表值函数
  • IT = 内表
  • P = SQL 存储过程
  • PC = 程序集 (CLR) 存储过程
  • PG = 计划指南
  • PK = PRIMARY KEY 约束
  • R = 规则(旧式,独立)
  • RF = 复制过滤程序
  • S = 系统基表
  • SN = 同义词
  • SO = 序列对象
  • SQ = 服务队列
  • TA = 程序集 (CLR) DML 触发器
  • TF = SQL 表值函数
  • TR = SQL DML 触发器
  • TT = 表格类型
  • U = 表(用户定义)
  • UQ = UNIQUE 约束
  • V = 查看
  • X = 扩展存储过程

关于sql - 为什么在检查表是否存在时使用 OBJECT_ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com