我有两个相同的表,
如果我这样做,那么就会出现以下错误:
I_Subject
和 I_Temp_Subject
,我想将 Temp_Subject
表复制到 Subject
表中。 I_Temp_Subject
由普通用户使用,而 I_Subject
则由管理员使用。管理员可以直接向 I_Subject
插入新记录,并验证 I_Temp_Subject
的内容。
两个表的ID都设置为自动递增。复制 SQL 命令如下:INSERT INTO I_SUBJECT(ID,CATEGORY_ID,USER_NAME,SERIAL_NUMBER,ICON)
SELECT ID,CATEGORY_ID,USER_NAME,SERIAL_NUMBER,ICON FROM I_TEMP_SUBJECT
如果我这样做,那么就会出现以下错误:
System.Data.SqlClient.SqlException: Cannot insert explicit value for identity
column in table 'I_SUBJECT' when IDENTITY_INSERT is set to OFF.
如果在上述语句中不包括ID,那么除了ID不相同之外,一切都正常。
因此,我想添加一个before insert触发器来检查插入是否具有空ID,然后自动增加(当管理员直接插入时),否则,如果插入的ID!= null,则从I_Temp_Subject
复制ID(当管理员验证时)。