我想使用存储过程一次将记录插入多个表中。但如果它已经存在,则无法插入该记录。怎么样?我需要帮助。我在表格之间有联系。
CREATE TABLE [dbo].[tblrole]
(
[roleid] [INT] IDENTITY(1, 1) NOT NULL,
[rolename] [VARCHAR](50) NULL,
PRIMARY KEY CLUSTERED ([roleid] ASC)
)
答案 0 :(得分:1)
如果您有唯一的主键,则无法插入重复记录,这是正常的。 你一直在谈论多个表,但是你已经只给我们一个表定义了。 我很清楚你的问题,你会这样:
create proc insert_data
-- params are coming here
as
if not exists(select 1 from your_target_table1 where column = @condition)
-- your insert comes here
else
-- do nothing or log en error in an error table or do an update
if not exists(select 1 from your_target_table2 where column = @condition)
-- your insert comes here
else
-- do nothing or log en error in an error table or do an update
-- and soon