日期:2014-05-19  浏览次数:20728 次

怎么才能在有数据的表里添加不能为空的字段?
用语句实现。

------解决方案--------------------
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[TABLE1] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
drop table [dbo].[TABLE1]
GO

CREATE TABLE [dbo].[TABLE1] (
[gh] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
------解决方案--------------------
有兩種方法,不過都不是那麼直接.

Create Table TEST
(ID Int)
Insert TEST Select 1
GO
--方法一
--先插入列,然後給所有數據復制,然後修改為不能為Null
Alter Table TEST Add [Name] Varchar(100)
Update TEST Set [Name] = ' '
Alter Table TEST Alter Column [Name] Varchar(100) Not Null

--方法二
--給插入的列加上默認值
Alter Table TEST Add [Address] Varchar(100) Not Null Default ' '
Select * From TEST
GO
Drop Table TEST
--Result
/*
ID Name Address
1
*/