Я учу себя 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: Msg 207, уровень 16, состояние 1, процедура q_insertuser, строка 19 Недопустимое имя столбца 'userid'.
Произошла ошибка во время выполнения партии.
Однако имя столбца userid представляет собой таблицу, которую я запрашиваю.
Другим способом является использование предложения 'OUTPUT'. – a1ex07
Спасибо, что отлично работали. – Qu1nncunxIV