create trigger add_ciry on phx_customers
instead of insert
as declare
@fname varchar(20),
@lname varchar(20),
@addr varchar(50),
@city varchar(20),
@state char(2),
@zip char(5),
@phone char(10)-----------------,set @city = 'phoenix'
set @fname = (select fname from insterted)
set @lname = (select fname from insterted)
set @addr = (select fname from insterted)
set @state = (select fname from insterted)
set @zip = (select fname from insterted)
set @phone = (select fname from insterted)
insert customers
values(@fname,@lname,@addr,@city,@state,@zip,@phone)

解决方案 »

  1.   

    set语句后的查询是否返回单条记录啊?如果不是的话,我怀疑是该查询语句的问题!!
      

  2.   

    @fname varchar(20),
    @lname varchar(20),
    @addr varchar(50),
    @city varchar(20),
    @state char(2),
    @zip char(5),
    @phone char(10),
    沒 “,”
      

  3.   

    语句@phone char(10),
    后面的‘逗号’不要
      

  4.   

    只有两种可能,一是你看错了,一是你那本书印错了,用declare声明变量时,末尾是不会有“,”这种东西的。
      

  5.   

    set @fname = (select fname from insterted)
    改为:
    select @fname=fname from insterted
      

  6.   

    declare
    @fname varchar(20),
    @lname varchar(20),
    @addr varchar(50),
    @city varchar(20),
    @state char(2),
    @zip char(5),
    @phone char(10) “,“
    这个逗号肯定有错!
      

  7.   

    @phone char(10)应该后面没有“,”,其实一楼的就已经解答对了
      

  8.   

    声明最后多了一个','set @fname = (select fname from insterted) 也不对
    若插入多行则出错,应用游标逐行读
      

  9.   

    还没说,最终的结果是我的最后一行DECLARE多了个逗号,希望 有类似问题的朋友注意,结贴了。。