Come fare riferimento a un database di sql server con una barra rovesciata (\) nel suo nome?

Givens:

  • Di un database di SQL Server è denominato: DevServerA
  • Un altro nome: DevServerB\2K5

Problema:

Da DevServerA, come posso scrivere una query che fa riferimento DevServerB\2K5?

Ho provato un campione, il manichino query (da DevServerA):

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

E ricevo l’errore:

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

Tuttavia, so che la mia sintassi è quasi corretto, dato che l’altro senso intorno lavori (esecuzione di questa query da DevServerB\2K5):

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

Per favore aiutarmi a capire come riferimento DevServerB\2K5 da DevServerA. Grazie.

  • Tecnicamente, slash è (/) e la barra rovesciata (\).
  • Grazie @Steven, ho aggiornato il titolo.
InformationsquelleAutor Bill Paetzke | 2010-03-30



3 Replies
  1. 18

    In 4 parte i nomi, la prima parte se il nome di un server collegato (ie. un oggetto metadati), non il nome di un server (es. il nome dell’host). Così puoi cambiare il nome del server collegato PIPPO e lo punto al BAR ospitante, o su istanza PIPPO\BAR. E anche se il nome del server collegato oggetto per contenere una barra, si può ancora usare in un multi-nome di parte, semplicemente citando il nome:

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

    Provare a utilizzare le parentesi quadre:

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

    Su SQL SERVER 2005, il seguente è successo:
    Voce di:

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

    È cambiato

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

    dal sistema di SQL Server e viene ancora visualizzato il messaggio di errore:
    Sintassi non corretta in prossimità di ‘.’.

    Ho provato con un server collegato chiamato in due modi diversi:
    ‘[DevServerB\2K5]’ e ‘DevServerB\2K5’

    Qualcuno ha altre idee?

    Grazie Alan Robertson

    CORREZIONE aggiunto il giorno successivo: mi sono sbagliato, in parte. Quando si cerca di creare una vista utilizzando un’istruzione SQL come:

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

    poi la [ e ] vengono rimossi e non si può salvare la vista,
    MA se uno scrive una query utilizzando la stessa stringa SQL che quindi funziona correttamente.

    Sono stato anche in grado di eseguire un’istruzione SQL come:

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

    Posso fare quello che volevo, ma sarebbe stato molto meglio se avessi potuto salvare un vista e usa una vista che sarebbe poi essere utilizzato per SELEZIONARE, INSERIRE e AGGIORNARE la tabella del [DevServerB\2K5].TestDB database
    dal server originale dove ho provato e non è riuscito a creare una vista a causa di la ‘\’ .

    -ASR-

    • Per quanto riguarda il problema con SQL Server 2005 (che ho anche imbattuto in) è possibile utilizzare la CREAZIONE o la modifica di VISTA del bilancio. Sembra che ci sia un bug nella finestra di progettazione che impedisce il salvataggio della definizione, quindi dovrete farlo manualmente 😉

Lascia un commento