4
我正在教自己的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數據提供程序:消息207,級別16,狀態1,過程q_insertuser,行19無效的列名'userid'。
正在執行批處理時發生錯誤。
但是,列名userid存在我正在查詢的表。
另一種方法是使用'OUTPUT'子句。 – a1ex07
謝謝你的工作完美。 – Qu1nncunxIV