SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[tianjia]
on [dbo].[Table_用户表]
for insert
as
declare @xm varchar(8)
select @xm = 用户名 from inserted
begin
insert into Table_课件表 values('','','','',@xm,'','','')
end
// 课件表 第一列 id自增
出现错误
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Table_课件表'中的标识列指定显式值。
可以通过修改标识列的属性来解决此问题。在 SQL Server Management Studio 中,选择 "Table_课件表",右键单击该表,然后选择 "设计"。找到标识列,将其属性 "标识增量"(Identity Increment)更改为 "1"。接下来,打开新的查询窗口,输入以下命令:
SET IDENTITY_INSERT Table_课件表 ON
GO
insert into Table_课件表 (id, col1, col2, col3, username, col5, col6, col7)
values (@id, '', '', '', @xm, '', '', '')
GO
SET IDENTITY_INSERT Table_课件表 OFF
GO
首先将 "IDENTITY_INSERT" 属性设置成 "ON",然后再执行 INSERT 命令,手动为标识列指定值,并将其设置回 "OFF"。
另一种解决方法是指定列名列表并将标识列排除在外。可以将 INSERT 命令更改为以下形式:
insert into Table_课件表 (col1, col2, col3, username, col5, col6, col7)
values ('', '', '', @xm, '', '', '')
将 "id" 列排除在外,并将其余列的值设置为空字符串或 NULL。这样,INSERT 命令就可以执行了。