gpt4 book ai didi

c# - 插入触发器 SQL 之前

转载 作者:行者123 更新时间:2023-11-30 16:21:16 25 4
gpt4 key购买 nike

我有两个相同的表,I_SubjectI_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(当管理员验证时)。

最佳答案

由于备份表是一个直接副本,我会关闭那个表的自动增量,以便两者始终保持同步。如果那不是选项,请打开身份插入,但我认为这是不必要的。

SET IDENTITY_INSERT dbo.<tablename> ON
<your insert statements>
SET IDENTITY_INSERT dbo.<tablename> OFF

关于c# - 插入触发器 SQL 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com