2010-03-30 22 views
11

Givens:¿Cómo hacer referencia a un servidor sql con una barra diagonal inversa () en su nombre?

  • Uno de SQL Server se denomina: DevServerA
  • Otro se llama: DevServerB\2K5

Problema:

De DevServerA, ¿cómo puedo escribir una consulta que hace referencia al DevServerB\2K5?

probé una muestra, consulta ficticia (ejecutarlo desde DevServerA):

SELECT TOP 1 * 
FROM DevServerB\2K5.master.sys.tables 

y me sale el error:

Msg 102, Level 15, State 1, Line 2 
Incorrect syntax near '\.'. 

Sin embargo, sé que mi sintaxis es casi correcta, ya que a la inversa funciona (ejecutando esta consulta desde DevServerB\2K5):

SELECT TOP 1 * 
FROM DevServerA.master.sys.tables 

Por favor, ayúdame a averiguar cómo hacer referencia DevServerB\2K5 de DevServerA. Gracias.

+2

Técnicamente, slash es (/) y la barra invertida es (\\). – Steven

+0

Gracias @Steven, actualicé el título. –

Respuesta

16

En 4 nombres de las partes, la primera parte si el nombre de un servidor vinculado (es decir, un objeto de metadatos.), No el nombre de un servidor (es decir, un anfitrión. nombre). Por lo tanto, puede asignarle un nombre al servidor vinculado FOO y hacer que apunte a la BARRA host, o en la instancia FOO \ BAR. E incluso si el nombre del objeto de servidor vinculado a contener una barra, que todavía se puede utilizar en un nombre de varias partes con sólo citar el nombre:

SELECT TOP 1 * 
FROM [DevServerB\2K5].master.sys.tables 
6

Trate de usar corchetes:

SELECT TOP 1 * 
FROM [DevServerB\2K5].master.sys.tables 
0

en el Servidor SQL 2005, ocurrió lo siguiente: entrada de :

SELECT TOP 1 * 
FROM [DevServerB\2K5].master.sys.tables 

se cambia a

SELECT TOP 1 * 
FROM DevServerB\2K5.master.sys.tables 

por el sistema de SQL Server y sigue recibiendo el mensaje de error: sintaxis incorrecta cerca ''.

he probado con un servidor vinculado llamado de dos maneras diferentes: '[DevServerB \ 2K5]' y 'DevServerB \ 2K5'

¿Alguien tiene alguna otra idea?

Gracias Alan Robertson

CORRECCIÓN añadió al día siguiente: yo estaba equivocado, parcialmente.Cuando uno trata de crear una vista con una instrucción SQL como:

SELECT * 
FROM [DevServerB\2K5].TestDB.dbo.tables 

entonces el [y] se eliminan y no se puede guardar la vista, pero si uno simplemente escribe una consulta utilizando la misma cadena SQL entonces funciona correctamente.

que también fue capaz de ejecutar una instrucción SQL como:

INSERT INTO [DevServerB\2K5].TestDB.dbo.tables (...) ... 

puedo hacer lo que quería, pero habría sido mucho mejor si pudiera haber salvado a una vista y se utiliza una vista que haría a continuación, ser utilizado para SELECCIONAR, INSERTAR y ACTUALIZAR de la tabla en la base de datos [DevServerB \ 2K5] .TestDB del servidor original donde intenté y no pude crear una vista debido a la '\'.

-ASR-

+0

En cuanto al problema con SQL Server 2005 (con el que también me encontré), puede usar instrucciones CREATE o ALTER VIEW. Parece haber un error en el diseñador que impide guardar la definición, por lo que tendrás que hacerlo manualmente ;-) – Gorgsenegger

Cuestiones relacionadas