Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在SQL Server中的现有列中分配默认约束_Sql_Sql Server_Alter Table - Fatal编程技术网

无法在SQL Server中的现有列中分配默认约束

无法在SQL Server中的现有列中分配默认约束,sql,sql-server,alter-table,Sql,Sql Server,Alter Table,我正在使用SQL Server,有一个表Employee。我想将开始日期的约束从NULL更改为notnull,并使用GETDATE()函数添加一个DEFAULT。请检查屏幕截图并建议如何解决我得到的错误: 尝试使用此TSQL命令添加,非空约束 ALTER TABLE [dbo].[Employee] ALTER COLUMN [Starting_Date] DataTime NOT NULL; UPDATE [dbo].[Employee] SET Starting_Date = [dbo].

我正在使用SQL Server,有一个表
Employee
。我想将
开始日期的约束从
NULL
更改为
notnull
,并使用
GETDATE()
函数添加一个
DEFAULT
。请检查屏幕截图并建议如何解决我得到的错误:


尝试使用此
TSQL
命令添加,非空约束

ALTER TABLE [dbo].[Employee] ALTER COLUMN [Starting_Date] DataTime NOT NULL;
UPDATE [dbo].[Employee] SET Starting_Date = [dbo].[GetDate]() WHERE Starting_Date = NULL;
如果您的表中有任何起始日期为空的行,请在添加约束之前运行此查询

ALTER TABLE [dbo].[Employee] ALTER COLUMN [Starting_Date] DataTime NOT NULL;
UPDATE [dbo].[Employee] SET Starting_Date = [dbo].[GetDate]() WHERE Starting_Date = NULL;
然后,对于函数输出结果中的默认约束

ALTER TABLE [dbo].[Employee]
ADD CONSTRAINT df_Starting_Date
DEFAULT([dbo].[GetDate]())FOR Starting_Date;

尝试使用此
TSQL
命令添加,notnull约束

ALTER TABLE [dbo].[Employee] ALTER COLUMN [Starting_Date] DataTime NOT NULL;
UPDATE [dbo].[Employee] SET Starting_Date = [dbo].[GetDate]() WHERE Starting_Date = NULL;
如果您的表中有任何起始日期为空的行,请在添加约束之前运行此查询

ALTER TABLE [dbo].[Employee] ALTER COLUMN [Starting_Date] DataTime NOT NULL;
UPDATE [dbo].[Employee] SET Starting_Date = [dbo].[GetDate]() WHERE Starting_Date = NULL;
然后,对于函数输出结果中的默认约束

ALTER TABLE [dbo].[Employee]
ADD CONSTRAINT df_Starting_Date
DEFAULT([dbo].[GetDate]())FOR Starting_Date;