我在学SQL ,开始认为自己的输入有误,结果是联机丛书的错。不信,大家试一试。
那位高手,改一改。
大家可以在索引里找的,索引名:修改表
                     SQL版本:8.00.194
/********************全文属实*******************************/E. 更改表以添加多个带有约束的列
下例向表中添加多个带有约束的新列。第一个新列具有 IDENTITY 属性;表中每一行的标识列都将具有递增的新值。CREATE TABLE doc_exe ( column_a INT CONSTRAINT column_a_un UNIQUE) 
GO
ALTER TABLE doc_exe ADD /* Add a PRIMARY KEY identity column. */ 
column_b INT IDENTITY
CONSTRAINT column_b_pk PRIMARY KEY, /* Add a column referencing another column in the same table. */ 
column_c INT NULL  
CONSTRAINT column_c_fk 
REFERENCES doc_exe(column_a),/* Add a column with a constraint to enforce that   */ 
/* nonnull data is in a valid phone number format.  */
column_d VARCHAR(16) NULL 
CONSTRAINT column_d_chk
CHECK 
(column_d IS NULL OR 
column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR
column_d LIKE
"([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"),/* Add a nonnull column with a default.  */ 
column_e DECIMAL(3,3)
CONSTRAINT column_e_default
DEFAULT .081
GO
EXEC sp_help doc_exe
GO
DROP TABLE doc_exe
GO错误信息:
服务器: 消息 8141,级别 16,状态 1,行 1
列 CHECK 约束(属于列 'column_d')引用了另一列,表 'doc_exe'。
服务器: 消息 1759,级别 16,状态 1,行 1
在约束或计算列的定义中指定了无效的列 '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。