今天在调试项目的时候使用SqlServer遇到了上面的错误:
我像管理员表中插入数据:
inert into Admin vlues(1,'liu','123')
在结果窗口中显示了:仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'Admin' 中为标识列指定显式值。
微软的解释:
试图将包含特定标识值的行插入包含标识列的表中。但是,未提供列的列表或没有为指定的表启用 SET IDENTITY_INSERT。
处理办法:
若要成功地将特定的标识行插入包含标识列的表中,必须提供列的列表并且将 SET IDENTITY_INSERT 设为 ON。
于是我进行了如下操作:
set IDENTITY_INSERT Admin ON
insert into Admin(AdminID,AdminName,AdminPass) values(2,'li','123')
成功插入数据。
也可以进行如下操作:
不去设置 IDENTITY_INSERT,此项默认是ON
insert into Admin(AdminName,AdminPass)values('li','123')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
select * from sysobjects where xtype='u'
2:另外,在SQL2005中,没有NOW()这个函数,如果获得当前时间,GETDATE();
返回一个DATETIME类型