我正试图在单个存储过程中执行插入和更新操作。请帮忙。然而,我一直收到这个错误消息:
Msg 102,Level 15,State 1,Procedure InsertUpdate,Line 39[Batch Start Line 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;
非常感谢
此逻辑是不允许的:
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