use*_*374 4 sql-server null ddl sql-server-2000
我知道在向包含SQL Server中的数据的表中添加列时,该列必须具有NULL选项或默认值.否则SQL Server会用新的行填充什么?
我不知道为什么我不能在空表中添加NOT NULL列.我已经在两个SQL 2008实例和一个SQL 2005实例上尝试了这个,没有任何问题.但是,使用SQL 2000的客户确实存在此问题.这是与SQL 2000相关还是可以关闭的选项.我们希望这是一个选择.
Select @@Version
Run Code Online (Sandbox Code Playgroud)
Microsoft SQL Server 2000 - 8.00.760(Intel X86)2002年12月17日14:22:05版权所有(c)1988-2003 Microsoft Corporation Developer Edition on Windows NT 5.1(Build 2600:Service Pack 3)
Select count(*) from actinv
0
ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NOT NULL
Run Code Online (Sandbox Code Playgroud)
消息4901,级别16,状态1,行1 ALTER TABLE仅允许添加可包含空值或指定了DEFAULT定义的列.列'BATCHNUMBER'无法添加到表'ActInv'中,因为它不允许空值并且不指定DEFAULT定义.
Sha*_*nce 11
SQL Server 2000不检查空表.您所看到的是SQL Server 2005/2008的改进.
以下两个步骤过程中的任何一个都将在SQL Server 2000中对空表进行更改:
ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NOT NULL CONSTRAINT ActInv_Temp DEFAULT 'foo'
ALTER TABLE [ActInv] DROP CONSTRAINT ActInv_Temp
Run Code Online (Sandbox Code Playgroud)
走
ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NULL
ALTER TABLE [ActInv] ALTER COLUMN [BATCHNUMBER] NVARCHAR(50) NOT NULL
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18965 次 |
最近记录: |