[英]Insert column if it doesn't exist
如果之前没有插入,我正在尝试在我的数据库中插入一个新列。 我的专栏看起来像这样
ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 tinyint not null default 0
我希望只有当它不在表中时才插入该列。
我的代码行只插入它但不检查它是否存在。
如果您使用的是 MS SQL 服务器,那么您可以像下面这样操作:
IF COL_LENGTH('tSafeUnit', 'HasAccess24_7') IS NULL
BEGIN
ALTER TABLE dbo.tSafeUnit
ADD HasAccess24_7 tinyint not null default 0
END
试试这个:
IF (SELECT COUNT(*) FROM syscolumns WHERE name = 'HasAccess24_7'
AND OBJECT_NAME(object_id) = 'tSafeUnit') = 0
BEGIN
ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 tinyint not null default 0
END
你可以试试这个。
IF NOT EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'HasAccess24_7' AND TABLE_NAME = 'tSafeUnit')
AND EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'tSafeUnit')
BEGIN
ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 TINYINT NOT NULL DEFAULT 0
END
test 是该模式中该表的列
if not exists ( select 1
from information_schema.columns
where table_schema = 'dbo'
and table_name = 'tSafeUnit'
and column_name = 'HasAccess24_7')
begin
ALTER TABLE dbo.tSafeUnit ADD HasAccess24_7 TINYINT NOT NULL DEFAULT 0;
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.