交易 sql - 不能 select 来自变量
transact sql - can't select from variable
我正在尝试获取插入 TABLE A 的新记录的 ID,并在后续插入中使用它。
但我收到一条错误消息,指出未声明 newUserId 变量。
它实际上是一个 table 变量。
代码如下所示;
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 = 'ppan@mydomain.org';
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
为了这个目的我简化了代码 post 但第 36 行是我引用的地方 SELECT @newUserId.id
如有任何提示,我们将不胜感激。
谢谢
因为 @newUserId
是一个 table 变量你不能 select 它作为一个变量。
你可以试试INSERT INTO ....SELECT ... FROM
INSERT INTO dbo.UserProfile
SELECT id, '{}', GETDATE(), GETDATE(), ''
FROM @newUserId
我正在尝试获取插入 TABLE A 的新记录的 ID,并在后续插入中使用它。
但我收到一条错误消息,指出未声明 newUserId 变量。 它实际上是一个 table 变量。
代码如下所示;
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 = 'ppan@mydomain.org';
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
为了这个目的我简化了代码 post 但第 36 行是我引用的地方 SELECT @newUserId.id
如有任何提示,我们将不胜感激。
谢谢
因为 @newUserId
是一个 table 变量你不能 select 它作为一个变量。
你可以试试INSERT INTO ....SELECT ... FROM
INSERT INTO dbo.UserProfile
SELECT id, '{}', GETDATE(), GETDATE(), ''
FROM @newUserId