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

Tabla con nombre de @variable

Estas en el tema de Tabla con nombre de @variable en el foro de SQL Server en Foros del Web. Hola, a todos. quiero repicar unas tablas hacia un servidor principal y no me toma el nombre de la tabla explico Original y funciona: @import ...
  #1 (permalink)  
Antiguo 20/06/2014, 21:02
Avatar de mazingerz  
Fecha de Ingreso: febrero-2003
Ubicación: Sarasota FL
Mensajes: 147
Antigüedad: 21 años, 2 meses
Puntos: 0
Tabla con nombre de @variable

Hola, a todos.
quiero repicar unas tablas hacia un servidor principal y no me toma el nombre de la tabla explico
Original y funciona:
Código SQL:
Ver original
  1. INSERT INTO [192.168.1.100].[DATA].[dbo].Documentos_pagados
  2. SELECT * FROM [dbo].Documentos_pagados
  3. WHERE doc_registro IN (0, NULL)
Cambio que no funciona
Código SQL:
Ver original
  1. DECLARE @TABLENAME AS VARCHAR(MAX);
  2.  
  3. SET @TABLENAME = '[192.168.1.100].[DATA].[dbo].' + 'Documentos_pagados';
  4.  
  5. INSERT INTO @TABLENAME
  6. SELECT * FROM [dbo].Documentos_pagados
  7. WHERE doc_registro IN (0, NULL)

Alguien sabe como o que falta para escribir solo una variable con el datasource.

Saludos.

Última edición por gnzsoloyo; 23/06/2014 a las 07:56
  #2 (permalink)  
Antiguo 23/06/2014, 07:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Tabla con nombre de @variable

Código SQL:
Ver original
  1. DECLARE @TABLENAME AS VARCHAR(MAX);
  2. DECLARE @query Nvarchar(MAX)
  3. SET @TABLENAME = '[192.168.1.100].[DATA].[dbo].' + 'Documentos_pagados';
  4.  
  5. SET @query='
  6. INSERT INTO '+ @TABLENAME + '
  7. SELECT * FROM [dbo].Documentos_pagados
  8. WHERE doc_registro in (0, null) '
  9.  
  10. EXEC sp_executesql @query

Con algo llamado querys dinamicos solucionas tu problema ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/07/2014, 09:03
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Tabla con nombre de @variable

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. DECLARE @TABLENAME AS VARCHAR(MAX);
  2. DECLARE @query Nvarchar(MAX)
  3. SET @TABLENAME = '[192.168.1.100].[DATA].[dbo].' + 'Documentos_pagados';
  4.  
  5. SET @query='
  6. INSERT INTO '+ @TABLENAME + '
  7. SELECT * FROM [dbo].Documentos_pagados
  8. WHERE doc_registro in (0, null) '
  9.  
  10. EXEC sp_executesql @query

Con algo llamado querys dinamicos solucionas tu problema ;)
No es recomendable agregar la palabra reservada NULL dentro de una expresión IN. Si bien el motor no tira ningún tipo de error, directamente no la tiene en cuenta a la hora de la evaluación.

La forma correcta de evaluar NULO es:

Código SQL:
Ver original
  1. SELECT campo1
  2. FROM tabla
  3. WHERE campo1 IS NULL

Saludos!

damimg
DBA Specialist

Etiquetas: nombre, registro, select, tabla, variable
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 15:29.