我正在嘗試獲取插入到表 A 中的新記錄的 ID,并在后續插入中使用它。
但是我收到一條錯誤訊息,指出未宣告 newUserId 變數。它實際上是一個表變數。
代碼如下所示;
USE Acme;
GO
DECLARE @userPrincipalName VARCHAR(100),
@displayName VARCHAR(100),
@domainName VARCHAR(100),
@tId INT,
@uname VARCHAR(100);
DECLARE @newUserid TABLE (
id INT
);
-- FILL ME IN
SET @domainName = 'mydomain.org';
SET @userPrincipalName = '[email protected]';
SET @displayName = 'Pan, Peter';
SET @tId=4;
SET @uname = 'ppan';
INSERT INTO dbo.User
(column list)
OUTPUT Inserted.ID INTO @newUserId
SELECT '', @domainName, getutcdate(), @userPrincipalName, @displayName, other fields
-- Create New Profile Using NewID ** THIS IS WHERE IT DIES
INSERT INTO dbo.UserProfile
SELECT @newUserId.id,
'{}', GETDATE(), getdate(), ''
具體錯誤是:
8:55:51 AMStarted executing query at Line 1
Commands completed successfully.
8:55:51 AMStarted executing query at Line 3
Msg 137, Level 16, State 1, Line 36
Must declare the scalar variable "@newUserid".
Total execution time: 00:00:00.017
為了這篇文章,我已經縮寫了代碼,但第 36 行是我參考 SELECT @newUserId.id 的地方
任何提示將不勝感激。
謝謝
uj5u.com熱心網友回復:
因為@newUserId是表變數,所以不能選擇它作為變數。
你可以嘗試使用INSERT INTO ....SELECT ... FROM
INSERT INTO dbo.UserProfile
SELECT id, '{}', GETDATE(), GETDATE(), ''
FROM @newUserId
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460700.html
上一篇:CTE中的自定義排序順序
下一篇:簡化查詢SQL
