База данных 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; 
Другие вопросы по тегам