使用存储过程插入

时间:2015-07-17 06:44:16

标签: sql

我想使用存储过程一次将记录插入多个表中。但如果它已经存在,则无法插入该记录。怎么样?我需要帮助。我在表格之间有联系。

CREATE TABLE [dbo].[tblrole] 
( 
     [roleid]   [INT] IDENTITY(1, 1) NOT NULL, 
     [rolename] [VARCHAR](50) NULL, 

     PRIMARY KEY CLUSTERED ([roleid] ASC)
) 

1 个答案:

答案 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