IF ( EXISTS( SELECT 1 FROM yourtable WHERE key1 = ... AND key2 = ... AND key3 = ... ) )
BEGIN
    PRINT '有重复值'
    RETURN
END 
ELSE 
BEGIN
    PRINT '没有重复值'
    INSERT INTO yourtable( ... ) VALUES( ... )
END

解决方案 »

  1.   

    我的表名是个变量,语句该怎么写呢
    还有@@error,程序执行存储过程的时候会不会异常呢
      

  2.   

    declare @num bigint  
    declare @tablename varchar(200)
    declare @sql varchar(2000)
    select @sql =' select '+@num +' = count(*) from ' + @tablename + 'WHERE key1 = ... AND key2 = ... AND key3 = ...)'
    exec (@sql)
    IF @num > 0 
    BEGIN
        PRINT '有重复值'
        RETURN  
    END 
    ELSE 
    BEGIN
        PRINT '没有重复值'
       INSERT INTO yourtable( ... ) VALUES( ... )
    END