una consulta sobre exec()

24/04/2008 - 17:12 por Luis Mata | Informe spam
quiero hacer esto:

declare @cantidad int, @cadena varchar(150), @nombrebd char(5)
set @nombrebd = 'bdall'

set @cadena = 'select count(*) from '+@nombrebd+'.dbo.articulos'
set @numero = exec(@cadena)

el nombre de bd es variable enviado como parametro
es posible o alguna otra forma de poder hacer esto sin declarar un cursor y
usar el fetch, para minimizar codigo

Att
Luis Mata Figueroa
Área Informática
Centro Cerámico Las Flores SAC
RPC: 993597297
TEL: 6174613
 

Leer las respuestas

#1 Alejandro Mesa
24/04/2008 - 18:43 | Informe spam
Luis Mata,

Debes usar sp_executesql.

declare @cantidad int, @cadena nvarchar(150), @nombrebd nvarchar(25)

set @nombrebd = 'bdall'

set @cadena = N'select @cantidad=count(*) from
['+@nombrebd+N'].dbo.articulos'

exec sp_executesql @cadena, N'@cantidad int output', @cantidad output

select @cantidad
go

AMB

"Luis Mata" wrote:

quiero hacer esto:

declare @cantidad int, @cadena varchar(150), @nombrebd char(5)
set @nombrebd = 'bdall'

set @cadena = 'select count(*) from '+@nombrebd+'.dbo.articulos'
set @numero = exec(@cadena)

el nombre de bd es variable enviado como parametro
es posible o alguna otra forma de poder hacer esto sin declarar un cursor y
usar el fetch, para minimizar codigo

Att
Luis Mata Figueroa
Área Informática
Centro Cerámico Las Flores SAC
RPC: 993597297
TEL: 6174613




Preguntas similares