2011-06-20 21 views
6

Estoy tratando de actualizar los campos de la base de datos de una tabla de SQL Server a otra.¿Actualizar la tabla de la base de datos de una tabla de base de datos de SQL Server a otra?

Nuestro servidor SQL de producción es [spdbprod.test.com\spprod], nuestro servidor QA es [spdbQA.test.com\spQA].

Necesito actualizar la tabla en producción desde la tabla QA. Estoy usando esta declaración SQL, pero está dando un error.

UPDATE 
    [spdbprod.test.com\spprod].[aspnetdb].[dbo].[Communities_Groups] as t1 
SET 
    t1.Show = (Select t2.show from [spdbQA.test.com\spQA].[aspnetdb].[dbo]. 
[Communities_Groups] as t2 where t1.GroupID = t2.GroupdID) 

¿Qué es la Me falta aquí? Error: ACTUALIZACIÓN. ("Sintaxis incorrecta cerca de la palabra clave 'como'.")

+0

Si publicas algo como esto y nos burlan con * se da un error *, sería mejor práctica para decirnos ** * * ¡cuál es el error exacto! Eso sería una tremenda ayuda para ver cuál podría ser el problema ... –

+0

@marc_s: Creo que un error obvio es el alias de la tabla en 'UPDATE'. ("Sintaxis incorrecta cerca de la palabra clave 'como'.") – a1ex07

+1

@ a1ex07: eso es una suposición - una buena (le votó por esa buena suposición), pero aún así es una suposición ... y se trata de un principio general - no lo haga solo diga "hay un error" - si usted dice eso - ¡DIGANOS qué es ese error! –

Respuesta

15

Está utilizando un alias de tabla de forma incorrecta. No puede hacer UPDATE table1 t SET field1=val, tiene que escribir UPDATE table1 SET field=val (O UPDATE table1 SET field=val FROM table1 t). Cambie su consulta a

UPDATE [spdbprod.test.com\spprod].[aspnetdb].[dbo].[Communities_Groups] 
SET Show = t2.show 
FROM [spdbprod.test.com\spprod].[aspnetdb].[dbo].[Communities_Groups] t1 
INNER JOIN [spdbQA.test.com\spQA].[aspnetdb].[dbo]. 
[Communities_Groups] t2 ON (t1.GroupID = t2.GroupID) 
+1

También funciona el formulario "UPDATE t SET field = val FROM table1 t". –

+0

Aparentemente, la porción '[dbo]' es más importante de lo que hubiera pensado. Sin embargo, ¡acabas de salvar mi trasero! Apreciado enormemente. –

0

Creo que debe tener un enlace de base de datos (servidores vinculados) para que esto funcione.

No tengo acceso a dos servidores SQL aquí en el trabajo, así que no puedo probarlo, pero estoy seguro de que necesita el enlace. ¿Tiene una configuración de servidor vinculado?

Aquí es una dirección URL que pueden ayudar a http://msdn.microsoft.com/en-us/library/ms188279.aspx

Harvey Sather

Cuestiones relacionadas