Usuário com melhor resposta
montar query sob demanda

Pergunta
-
Existe alguma forma de executar o retorno do texto dessa query logo após o retorno dela ? Gostaria de jogar o update montado em uma variável e então executá-lo.
select 'UPDATE Addresses SET CIDADE=''' + 'SAO PAULO' + ''' WHERE u_address_id=''' + u_address_id + ''';' + char(10) + 'go' from dbo.Addresses (nolock) where (cep between 01000001 and 05999999 ) and cidade <> 'SAO PAULO';
Respostas
-
Se for SQL Server 2000 você pode usar a xp_ExecResultSet por ex:
Code SnippetSELECT
TOP 10 'EXEC SP_SpaceUsed ' + Name AS SQL INTO #TMP_1 FROM sysobjects WHERE xType = 'U'EXEC
master.dbo.xp_execresultset 'select sql from #TMP_1','NOMEDOBANCO'
Todas as Respostas
-
Boa Tarde,
Você pode executar através de um EXEC ou sp_executesql. Ex:
Code SnippetDECLARE @cmdSQL VARCHAR(1000)
SET @cmdSQL = 'SELECT * FROM dbo.Address'
EXEC(@cmdSQL)
No entanto, como estamos falando de mais de um resultado, você teria que montar um cursor para percorrer todas as linhas e executá-las um a uma.
[ ]s,
Gustavo
-
-
Se for SQL Server 2000 você pode usar a xp_ExecResultSet por ex:
Code SnippetSELECT
TOP 10 'EXEC SP_SpaceUsed ' + Name AS SQL INTO #TMP_1 FROM sysobjects WHERE xType = 'U'EXEC
master.dbo.xp_execresultset 'select sql from #TMP_1','NOMEDOBANCO' -