向 SQLServer 添加列

我需要向 SQL Server表中添加一列。有没有可能在不丢失数据的情况下做到这一点,我已经做到了?

238122 次浏览

Of course! Just use the ALTER TABLE... syntax.

Example

ALTER TABLE YourTable
ADD Foo INT NULL /*Adds a new int column existing rows will be
given a NULL value for the new column*/

Or

ALTER TABLE YourTable
ADD Bar INT NOT NULL DEFAULT(0) /*Adds a new int column existing rows will
be given the value zero*/

In SQL Server 2008 the first one is a metadata only change. The second will update all rows.

In SQL Server 2012+ Enterprise edition the second one is a metadata only change too.

Adding a column using SSMS or ALTER TABLE .. ADD will not drop any existing data.

Use this query:

ALTER TABLE tablename ADD columname DATATYPE(size);

And here is an example:

ALTER TABLE Customer ADD LastName VARCHAR(50);

Add new column to Table

ALTER TABLE [table]
ADD Column1 Datatype

E.g

ALTER TABLE [test]
ADD ID Int

If User wants to make it auto incremented then

ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL

Add new column to Table with default value.

ALTER TABLE NAME_OF_TABLE
ADD COLUMN_NAME datatype
DEFAULT DEFAULT_VALUE