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

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

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

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

  1. CREATE PROCEDURE [dbo].[InsertUpdate]
  2. @Action VARCHAR(10)
  3. AS
  4. BEGIN
  5. IF @Action = 'INSERT'
  6. BEGIN
  7. INSERT INTO t1 (t1.col1, t1.col2, t1.col3)
  8. SELECT t2.col1, t2.col2, t2.col3
  9. FROM t1
  10. INNER JOIN t2 on t1.col1 = t2.col1
  11. WHERE t2.col1 IS NULL
  12. END
  13. IF @Action = 'UPDATE'
  14. BEGIN
  15. SET t1.col2 = CAST(t2.col2 as nvarchar(6)),
  16. t1.col3 = CAST(t2.col3 as tinyint)
  17. FROM t1
  18. INNER JOIN t2 ON t1.col1 = t2.col1
  19. END
  20. END;

非常感谢

yqyhoc1h

yqyhoc1h1#

不允许这种逻辑:

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

你大概打算:

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

相关问题