gpt4 book ai didi

sql - 如何创建一个等于最后插入行的id的临时变量

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:03 24 4
gpt4 key购买 nike

此处为 SQL n00b。知道我做错了什么吗?希望您能明白我的意图。

DECLARE @CatId INT;
SET @CatId = (
INSERT INTO Categories (CategoryName) VALUES ('TestCategory');
SELECT SCOPE_IDENTITY()
);
INSERT INTO Fields (CategoryID,FieldName,DisplayName) VALUES (@CatId,'TestName','TestDisplayName');

我收到了不太详细的错误

Incorrect syntax near 'INSERT'

最佳答案

在 SQL Server 中,处理此问题的正确方法是 OUTPUT 子句。我建议您学习这个方法并坚持下去。

DECLARE @CatIds TABLE (catid int);

INSERT INTO Categories (CategoryName)
OUTPUT inserted.catid INTO @CatIds;
VALUES ('TestCategory');

INSERT INTO Fields(CategoryID, FieldName, DisplayName)
SELECT CatId, 'TestName', 'TestDisplayName'
FROM @CatIds;

这比其他方法更可取,因为它显式将所需信息捕获到表中,然后可以进一步处理。代码更健壮,因为没有在“中间”添加一行代码和破坏现有代码的危险。它还支持同时插入多个值。

关于sql - 如何创建一个等于最后插入行的id的临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38905434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com