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

Preguntas similare

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




Respuesta Responder a este mensaje
#2 Luis Mata
25/04/2008 - 00:32 | Informe spam
Hola y como seria si quiero capturar un campo varchar() en lugar que el
output sea int
le pongo char y varchar pero siempre me sale 1

declare @ejecuta varchar(100), @nbd char(5),@vlogin varchar(10) @mail
varchar(100)
set @nbd = 'bdcho'
set @vlogin = 'usuario'
set @ejecuta = N'select @mail=mail from '+@vnbd+N'.dbo.sitabusr where
txdeslgn='+''''+@vlogin+''''
exec sp_executesql @ejecuta, N'@mail varchar output', @mail output



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


"Alejandro Mesa" escribió en el
mensaje news:
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




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida