就是当在employee表中插入和更新数据时,
让插入数据的地址字段为大写,
照着《SQL必知必会》上写的,
为什么会出现错误呢
CREATE TRIGGER employee_address
ON employee
FOR INSERT,UPDATE
AS
UPDATE employee
SET address=UPPER(address)
WHERE employee.firstname=inserted.firstname;
错误提示如下:
服务器: 消息 107,级别 16,状态 2,过程 employee_address,行 5
列前缀 'inserted' 与查询中所用的表名或别名不匹配。求指教

解决方案 »

  1.   

    employee 表不在你操作的库中或你写错了
      

  2.   

    UPDATE employee 
    SET address=UPPER(address) 
    from employee ,inserted
    WHERE employee.firstname=inserted.firstname; 
      

  3.   

    回楼上,按您那么改以后的确原来的错误没有了,
    但是出现新错误:服务器: 消息 209,级别 16,状态 1,过程 employee_address,行 5
    列名 'address' 不明确。
      

  4.   

    UPDATE employee SET employee.address=UPPER(inserted.address) from employee ,inserted WHERE employee.firstname=inserted.firstname;
      

  5.   

    不行,还是不行,插入数据的时候SET address=UPPER(address) 这行还是无效的
      

  6.   

    谁能告诉我一下,CREATE TRIGGER employee_address
    ON employee
    FOR INSERT,UPDATE
    AS
    UPDATE employee
    SET address=UPPER(address)
    FROM employee,inserted
    WHERE employee.firstname=inserted.firstname;这个出现错误,
    服务器: 消息 209,级别 16,状态 1,过程 employee_address,行 5
    列名 'address' 不明确。
    要怎么改呢,
    改成 SET inserted.address=UPPER(inserted.address)
    也不行,正确的要怎么写呢
      

  7.   

    CREATE TRIGGER employee_address 
    ON employee 
    FOR INSERT,UPDATE 
    AS 
    UPDATE employee 
    SET employee.address=UPPER(employee.address) 
    FROM employee,inserted 
    WHERE employee.firstname=inserted.firstname; 
      

  8.   

    CREATE TRIGGER employee_address 
    ON employee 
    FOR INSERT,UPDATE 
    AS 
    UPDATE employee 
    SET address=UPPER(i.address) 
    FROM employee,inserted i 
    WHERE employee.firstname=i.firstname; 
      

  9.   

    直接触发把所有记录改为大写好了CREATE TRIGGER employee_address 
    ON employee 
    FOR INSERT,UPDATE 
    AS 
    UPDATE employee 
    SET address=UPPER(address)