创建存储过程时出现错误消息“.”附近的语法不正确

e5nszbig  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(222)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

10个月前关门了。
改进这个问题
我尝试在单个存储过程中执行插入和更新操作。请帮忙。但是,我不断收到以下错误消息:
消息102,级别15,状态1,程序插入更新,第39行[批处理开始行623]
“.”附近的语法不正确
以下是示例查询:

CREATE PROCEDURE [dbo].[InsertUpdate]
    @Action VARCHAR(10)
AS
BEGIN
    IF @Action = 'INSERT'
    BEGIN
        INSERT INTO t1 (t1.col1, t1.col2, t1.col3)
            SELECT t2.col1, t2.col2, t2.col3
            FROM t1 
            INNER JOIN t2 on t1.col1 = t2.col1
            WHERE t2.col1 IS NULL
    END

    IF @Action = 'UPDATE'
    BEGIN
        SET t1.col2 = CAST(t2.col2 as nvarchar(6)),
            t1.col3 = CAST(t2.col3 as tinyint)
        FROM t1 
        INNER JOIN t2 ON t1.col1 = t2.col1
    END
END;

非常感谢

yqyhoc1h

yqyhoc1h1#

不允许这种逻辑:

SET t1.col2 = CAST(t2.col2 as nvarchar(6)),
        t1.col3 = CAST(t2.col3 as tinyint)
    FROM t1 inner join t2 on t1.col1 = t2.col1

你大概打算:

UPDATE t1
    SET t1.col2 = CAST(t2.col2 as nvarchar(6)),
        t1.col3 = CAST(t2.col3 as tinyint)
    FROM t1 inner join
         t2 
         on t1.col1 = t2.col1

相关问题