База данных SQL Azure не может передать результат одного запроса другому [закрыто]
DECLARE @SQLString1 NVARCHAR(500);
DECLARE @sid UNIQUEIDENTIFIER;
SET @SQLString1 = N'SELECT CONVERT(VARCHAR(1000), CAST(CAST(''SomeID'' AS UNIQUEIDENTIFIER) AS VARBINARY(16)),1) SID';
EXECUTE sp_executesql @SQLString1,
N'@sidOUT UNIQUEIDENTIFIER OUTPUT',
@sidOUT = @sid OUTPUT;
SELECT @sid;
-- here I get an error "Incorrect syntax near 'SID'."
CREATE USER [SomeUser] WITH DEFAULT_SCHEMA = [dbo], SID = @sid;
1 ответ
Обновление:
вы можете попробовать это?
DECLARE @sql varchar(2000)
DECLARE @SQLString1 NVARCHAR(500);
DECLARE @sid UNIQUEIDENTIFIER;
SET @SQLString1 = N'SELECT @sidOUT=CONVERT(VARCHAR(1000), CAST(CAST(0x010600000000016400000000000000007EB8838765C8624481A18F9CB2E160C2 AS UNIQUEIDENTIFIER) AS VARBINARY(16)),1) SID';
EXECUTE sp_executesql @SQLString1, N'@sidOUT VARCHAR(1000) OUTPUT' ,@sidOUT = @sid OUTPUT;
set @sql='CREATE USER [SomeUser] WITH DEFAULT_SCHEMA=[dbo] , SID='+@sid
SELECT @sid as sid;
EXEC(@sql);
Работает ли следующий sql? я добавил
@sidOUT
к выбранному запросу и удален
SID
в хвосте.
DECLARE @SQLString1 NVARCHAR(500);
DECLARE @sid UNIQUEIDENTIFIER;
SET @SQLString1 = N'SELECT @sidOUT=CONVERT(VARCHAR(1000), CAST(CAST(''SomeID'' AS UNIQUEIDENTIFIER) AS VARBINARY(16)),1)';
EXECUTE sp_executesql @SQLString1,
N'@sidOUT UNIQUEIDENTIFIER OUTPUT',
@sidOUT = @sid OUTPUT;
SELECT @sid;
-- here I get an error "Incorrect syntax near 'SID'."
CREATE USER [SomeUser] WITH DEFAULT_SCHEMA = [dbo], SID = @sid;