我有两个相同的表,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 不相同。
所以我想包含一个插入前触发器来检查插入是否具有空 ID,然后自动递增(当管理员直接插入时),否则如果插入的 ID != null 然后从I_Temp_Subject
(当管理员验证时)复制 ID。