【发布时间】:2019-10-08 18:07:04
【问题描述】:
我正在尝试将默认值设置为列(Inserted_time),但首先我需要检查表中是否存在该列。如果该列不存在,我需要添加该列并给它一个默认值。 我正在使用 Sql Server Management Studio。 到目前为止,我已经编写了这段代码:
IF EXISTS ( select TABLE_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_CATALOG = 'DB_COPY' and COLUMN_NAME = 'Inserted_Time')
begin
ALTER TABLE table_name ADD CONSTRAINT [Inserted_Time_Def] SET DEFAULT (sysdatetimeoffset()) FOR [Inserted_Time]
end
else
ALTER TABLE table_name ADD COLUMN [Inserted_Time] CONSTRAINT [Inserted_Time_Def] DEFAULT (sysdatetimeoffset()) WITH VALUES
一旦我检索到包含该列的表,我需要将该 table_name 添加到 Alter 命令。但我无法做到这一点。有人可以告诉我如何在 alter 语句中使用从 select 语句中检索到的 table_names 吗?
【问题讨论】:
-
所以您想动态地执行此操作,并且针对每个表?如果列已经有约束怎么办?
-
列没有那个约束。
标签: sql-server tsql ddl