Dynamic Transact SQL

30/07/2017

0

Boa tarde pessoal, estou precisando colocar na variável @REGIMECASAM, o valor que está no campo REGIMECASAM, da tabela COMPLEMENTO, do banco FIRMAS (Firebird).
O linked Server para o banco FIRMAS, está funcionando perfeitamente, porém a variável @REGIMECASAM, vem vazia, após o EXEC.
Obs, quando executo manualmente o select com o conteúdo de @QUERYTOTAL, não ocorre erros, e o resultado do SELECT está correto, e traz o valor 3, como conteúdo do campo REGIMECASAM.

DECLARE @REGIMECASAM INT
DECLARE @OPENQUERY nvarchar(1000), @TSQL nvarchar(1000), @LinkedServer nvarchar(1000)SET @LinkedServer = '[FIRMAS]'

SET @OPENQUERY = 'SELECT REGIMECASAM FROM OPENQUERY('+ @LinkedServer + ','''
SET @TSQL = 'SELECT REGIMECASAM FROM COMPLEMENTO WHERE LINK = ' + CAST(@CodigoID AS VARCHAR(6)) + ''')'
SET @QUERYTOTAL = @OPENQUERY+@TSQL
EXEC sp_executesql @QUERYTOTAL, N'@REGIMECASAM INT out', @REGIMECASAM OUT
SELECT @REGIMECASAM As Outputs

Algém consegue me ajudar ?
Paulo Miranda

Paulo Miranda

Responder

Posts

30/07/2017

Paulo Miranda

Resolvido !

mudei a linha: SET @OPENQUERY = 'SELECT REGIMECASAM FROM OPENQUERY('+ @LinkedServer + ','''

para:SET @OPENQUERY = 'SELECT @REGIMECASAM= REGIMECASAM FROM OPENQUERY('+ @LinkedServer + ','''
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar