ALTER proc [dbo].[usp_ProColour_Sup_Add]
(@SupplierNO varchar(50),
@ProNO varchar(50),
@ColourNO varchar(50),
@Flag int 
)
as
insert ProColour_Sup (SupplierNO,ProNO,ColourNO,Flag)
values(@SupplierNO ,@ProNO,@ColourNO,@Flag) 这是我一个添加一条记录的储存过程。。  但是没有判断表里是否已经有了。  我想做个判断。哪个高手帮下忙。。

解决方案 »

  1.   

    ALTER proc [dbo].[usp_ProColour_Sup_Add]
    (@SupplierNO varchar(50),
    @ProNO varchar(50),
    @ColourNO varchar(50),
    @Flag int 
    )
    as
    begin
         if not exists(select 1 from ProColour_Sup where SupplierNO=@SupplierNO)
            insert ProColour_Sup (SupplierNO,ProNO,ColourNO,Flag)
                   values(@SupplierNO ,@ProNO,@ColourNO,@Flag)
    end
      

  2.   


    ALTER proc [dbo].[usp_ProColour_Sup_Add]
    (@SupplierNO varchar(50),
    @ProNO varchar(50),
    @ColourNO varchar(50),
    @Flag int 
    )
    AS
    IF NOT EXISTS(SELECT 1 FROM ProColour_Sup WHERE SupplierNO=@SupplierNO AND ProNO=@ProNO AND ColourNO=@ColourNO AND Flag=@Flag)
    insert ProColour_Sup (SupplierNO,ProNO,ColourNO,Flag)
    values(@SupplierNO ,@ProNO,@ColourNO,@Flag)
      

  3.   

    ALTER proc [dbo].[usp_ProColour_Sup_Add]
    (@SupplierNO varchar(50),
    @ProNO varchar(50),
    @ColourNO varchar(50),
    @Flag int 
    )
    as
    declare @count int
    select @count=count(1) from ProColour_Sup where SupplierNO=@SupplierNO and ProNO=@ProNO and ColourNO=@ColourNO and Flag=@Flag
    if @count<1
    begin
    insert ProColour_Sup (SupplierNO,ProNO,ColourNO,Flag)
    values(@SupplierNO ,@ProNO,@ColourNO,@Flag)
    end