如何从现有表中删除列?
我有一个Fname和Lname的table MEN
我需要删除Lname
怎么做呢?
如何从现有表中删除列?
我有一个Fname和Lname的table MEN
我需要删除Lname
怎么做呢?
当前回答
在现有表中添加列:
ALTER TABLE table_name
ADD
column_name DATATYPE NULL
删除现有表中的列。
ALTER TABLE table_name
DROP COLUMN column_name
其他回答
问题是,你只能从一个不存在的表中删除一个列吗?
BEGIN TRANSACTION
IF exists (SELECT * FROM sys.columns c
INNER JOIN sys.objects t ON (c.[object_id] = t.[object_id])
WHERE t.[object_id] = OBJECT_ID(N'[dbo].[MyTable]')
AND c.[name] = 'ColumnName')
BEGIN TRY
ALTER TABLE [dbo].[MyTable] DROP COLUMN ColumnName
END TRY
BEGIN CATCH
print 'FAILED!'
END CATCH
ELSE
BEGIN
SELECT ERROR_NUMBER() AS ErrorNumber;
print 'NO TABLE OR COLUMN FOUND !'
END
COMMIT
ALTER TABLE MEN DROP COLUMN Lname
下面是正确答案:
ALTER TABLE MEN DROP COLUMN Lname
但是…如果列上存在约束,则必须先删除约束,然后才能删除列。为了删除一个约束,运行:
ALTER TABLE MEN DROP CONSTRAINT {constraint_name_on_column_Lname}
在现有表中添加列:
ALTER TABLE table_name
ADD
column_name DATATYPE NULL
删除现有表中的列。
ALTER TABLE table_name
DROP COLUMN column_name
如果您正在使用c#,并且Identity列是int,则创建一个int的新实例,而不向它提供任何值。这对我很管用。
[identity_column] = new int()