declare @name char(10)
declare @no1 char(10)
declare @no2 char(10)
declare @no3 char(10)
set @name = ...
set @no1 = ...
set @no2 = ...
set @no3 = ...
if no exists (select * from TB where name = @name and NO1 = @no1
and NO2 = @no2 and NO3 = @no3)
insert into TB values (@name, @no1, @no2, @no3)
declare @no1 char(10)
declare @no2 char(10)
declare @no3 char(10)
set @name = ...
set @no1 = ...
set @no2 = ...
set @no3 = ...
if no exists (select * from TB where name = @name and NO1 = @no1
and NO2 = @no2 and NO3 = @no3)
insert into TB values (@name, @no1, @no2, @no3)
如果他的代码用存储过程的话就可以了,
调用存储过程,无论如何并发总有个先后吧
不过我有时在主键列不允许为空的情况下,就是可以插入空值,呵呵,我也不知道是什么情况下发生的