如果它尚不存在,请将一列添加到表中
我想为MS SQL Server编写一个查询,将一列添加到表中。 但是当我运行/执行下面的查询时,我不想显示任何错误。
我正在使用这种查询来添加一个表...
IF EXISTS (
SELECT *
FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[Person]')
AND TYPE IN (N'U')
)
但是我不知道如何为列写这个查询。
您可以通过使用sys.columns
表io sys.objects
来使用类似的结构。
IF NOT EXISTS (
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
AND name = 'ColumnName'
)
IF COL_LENGTH('table_name', 'column_name') IS NULL
BEGIN
ALTER TABLE table_name
ADD [column_name] INT
END
另一种选择。 我更喜欢这种方法,因为它的写作较少,但两者完成同样的事情。
IF COLUMNPROPERTY(OBJECT_ID('dbo.Person'), 'ColumnName', 'ColumnId') IS NULL
BEGIN
ALTER TABLE Person
ADD ColumnName VARCHAR(MAX) NOT NULL
END
我也注意到你们正在寻找桌子确实存在的地方,这显然就是这样
if COLUMNPROPERTY( OBJECT_ID('dbo.Person'),'ColumnName','ColumnId') is not null
链接地址: http://www.djcxy.com/p/94405.html
上一篇: Add a column to a table, if it does not already exist
下一篇: How to check if a column exists in a table in Sql Server 2008?