如何在列数据类型为NON INTEGER的地方添加NOT NULL约束(比如VARCHAR(50))

时间:2016-09-11 11:24:13

标签: sql sql-server

尝试向现有表添加NOT NULL约束。成功了第一列(EMPID),但未能为第二列(EMPNAME)添加约束。

这是我的疑问:

CREATE TABLE tbl_primarykeyPOST2
(  
     EMPID INT,
     EMPNAME VARCHAR(50)
)

INSERT INTO tbl_primarykeyPOST2
    SELECT '1', 'GURMIT SINGH'   UNION ALL
    SELECT '2', 'KISHORE KUMAR'  UNION ALL
    SELECT '3', 'SHAHID ANWAR'   UNION ALL
    SELECT '4', 'ANDREW'         UNION ALL
    SELECT '5', 'ISMAIL'

SELECT * 
FROM tbl_primarykeyPOST2

ALTER TABLE tbl_primarykeyPOST2
    ALTER COLUMN EMPNAME VARCHAR NOT NULL 

1 个答案:

答案 0 :(得分:3)

在SQL Server中指定类型VARCHAR()时,始终需要指定长度。这是一个好主意,即使存在默认长度(默认实际上因上下文而异)。所以,试试这个:

ALTER TABLE tbl_primarykeyPOST2 
    ALTER COLUMN EMPNAME VARCHAR(50) NOT NULL ;