if not exists(select 1 from inserted a, record b where a.goods_id = b.goods_id)
   begin

解决方案 »

  1.   

    判断觸發器中插入的記錄有沒有與record表中goods_id字段相同的記錄.
      

  2.   

    判断
    表inserted的字段goods_id与表record的goods_id字段是否有相同的
    如果不存在则执行后面的命令inserted a, record b的意思是表inserted的别名为a,表record的别名为b
      

  3.   

    inserted表是存放要修改或插入的新记录的特殊表
      

  4.   

    select 1 那个1是代表什么
      

  5.   

    但是具体是什么意思呢?我只看过SELECT *,或SELECT 字段名
      

  6.   

    其实你只执行
    Select 1
    都可以运行,返回值就是1;
    你还可以运行
    select id, 'a' as af from atable
    这也第二个字段就全是a,并且名字为afif exists(...) begin...end
    是SQL server中带的语法,就是说如果exists后面运行的sql语句能有返回记录,就运行if语句下面的begin部分。
    exists语句会被优化,只要存在一条记录,立即返回,效率很高。
      

  7.   

    Exists只关心是否有结果集出现,而不是结果集是什么,用1来代替*的好处是不用SQL查询出满足条件的数据后再提字段了,效率会高一些!
      

  8.   

    select 1 与 select *的目的是一样,if not exists()返回的是一个布尔值,用来判断()中有无结果集,从而判断两张表有不有相同的数据集
      

  9.   

    返回1条就已经说明了问题了,没有必要 select *