Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

linked server y variables

Estas en el tema de linked server y variables en el foro de SQL Server en Foros del Web. Buen dia amigos del mejor foro!!! pues como siempre molestando con preguntas, he estado googleando acerca del tema de linked server y lo que necesito ...
  #1 (permalink)  
Antiguo 27/07/2010, 12:54
 
Fecha de Ingreso: noviembre-2009
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
linked server y variables

Buen dia amigos del mejor foro!!!
pues como siempre molestando con preguntas, he estado googleando acerca del tema de linked server y lo que necesito hacer es contar el numero de registros de una base de datos y luego asignarla a una variable, seria algo como esto:

@Registros=(SELECT * FROM OPENQUERY(localhost, 'select count(*) from db.'+ @Tabla + ' where Fecha=' +@Fecha))

el problema kreo q son las variables por que si hago algo como esto:

set @Registros=(SELECT * FROM OPENQUERY(localhost, 'select count(*) from db.clientes where Fecha=31012009' ))

si funciona..

espero haberme explicado y les agradesco de antemano su ayuda
  #2 (permalink)  
Antiguo 27/07/2010, 13:35
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: linked server y variables

Prueba si:
Código SQL:
Ver original
  1. SET @qry = 'select count(*)as total from db.'+ @Tabla + ' where Fecha=' +@Fecha
  2. SELECT @Registros=total FROM OPENQUERY(localhost, @qry)
De qué tipo es @fecha?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 27/07/2010, 13:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: linked server y variables

gracias por contestar flaviovich he probado lo que me comentas pero obtengo un erro de sintaxis
y lo estoy haciendo asi:

declare @tabla as char(45)
declare @FchaInfrmcion as char(8)
declare @Registros bigint

set @Tabla='ffncrdtos'
set @FchaInfrmcion ='31012009'

declare @query as char(80)

set @query='select count(*) from agsa_sarlaft.ffncrdtos where FchaInfrmcion=31012009'

set @Registros=(SELECT * FROM OPENQUERY(localhost,@query ))

select @Registros

todavia no utilizo las variables de tabla y fecha
  #4 (permalink)  
Antiguo 27/07/2010, 13:58
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: linked server y variables

Ponle nombre a count(*) y prueba asi:
Código SQL:
Ver original
  1. SELECT @Registros=total FROM OPENQUERY(localhost,@query )
Puedes poner el texto del error?
A que motor de BD te conectas?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 27/07/2010, 14:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: linked server y variables

Gracias de nuevo, estoy utilizando el ms sql 2005

y esta es la consulta:

declare @tabla as char(45)
declare @FchaInfrmcion as char(8)
declare @Registros bigint

set @Tabla='ffncrdtos'
set @FchaInfrmcion ='31012009'

declare @query as char(80)

set @query='select count(*) as total from agsa_sarlaft.ffncrdtos '

select @Registros= total FROM OPENQUERY(localhost,@query)

select @Registros

y este es el error:

Mens. 102, Nivel 15, Estado 1, Línea 12
Sintaxis incorrecta cerca de '@query'.

Gracias por tu ayuda!!
  #6 (permalink)  
Antiguo 27/07/2010, 14:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 17
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: linked server y variables

una cosa mas, el linked server es hacia Mysql
  #7 (permalink)  
Antiguo 27/07/2010, 14:54
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: linked server y variables

Perdon, OPENQUERY no acepta variables como parametros.
Código SQL:
Ver original
  1. DECLARE @tabla AS CHAR(45)
  2. DECLARE @FchaInfrmcion AS CHAR(8)
  3. DECLARE @Registros BIGINT
  4.  
  5. SET @Tabla='ffncrdtos'
  6. SET @FchaInfrmcion ='31012009'
  7.  
  8. SELECT @Registros= total FROM OPENQUERY(localhost,'select count(*) as total from agsa_sarlaft.ffncrdtos')
  9.  
  10. SELECT @Registros
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: linked, server, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.