gpt4 book ai didi

sql-server - 如何插入关系表

转载 作者:行者123 更新时间:2023-12-03 02:45:11 24 4
gpt4 key购买 nike

我自学 SQL Server 作为一种爱好。我一直被向关系表插入数据所困扰,我了解关系表的想法。

我想知道是否有人可以告诉我如何获取先前插入的行的标识,将其存储为变量,在其余查询中用作 FK。

这是我的 TSQL 代码:

CREATE PROCEDURE [dbo].[q_insertuser]
@username varchar(50),
@hash varchar(MAX),
@name varchar(50),
@email varchar(MAX),
@address varchar(MAX),
@city varchar(50),
@postcode varchar(50)

AS
--INSERT USERNAME
INSERT INTO tab_user
(username)
VALUES
(@username)

--Selects the Userid to be used
DECLARE @UID INT
SET @UID = INT FOR SELECT *
FROM tab_user
WHERE (userid = SCOPE_IDENTITY())

--INSERT PASSWORD
INSERT INTO tab_pass
(userid, hash)
VALUES
(@UID ,@hash)

--INSERT Address
INSERT INTO tab_contact
(userid,name, email, address, city, postcode)
VALUES
(@UID ,@name, @email, @address, @city, @postcode)
--RETURN 0

我在网上看到的例子似乎是这样做的,但我从 VS 得到了一个典型的神秘错误

(76,1): SQL72014: .Net SqlClient Data Provider: Msg 207, Level 16, State 1, Procedure q_insertuser, Line 19 Invalid column name 'userid'.
An error occurred while the batch was being executed.

但是列名 userid 出现在我正在查询的表中。

最佳答案

替换这部分

DECLARE @UID INT
SET @UID = INT FOR SELECT *
FROM tab_user
WHERE (userid = SCOPE_IDENTITY())

有了这个

DECLARE @UID INT
SET @UID = SCOPE_IDENTITY()

您可以将 SCOPE_IDENTITY() 函数直接分配给变量,就像 getdate() 或 db_name() 一样。

关于sql-server - 如何插入关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17512346/

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