2010-03-30 15 views
11

Givens: SQL Server adlıBir sql sunucusuna, adında ters eğik çizgi () nasıl başvurulur?

  • Bir: Başka adlandırılır DevServerA
  • : DevServerB\2K5

Sorun: bir sorgu yazabilirsiniz nasılDevServerA itibaren

, Bu DevServerB\2K5 referansları? Benim sözdizimi neredeyse doğru olduğunu biliyorum, Ancak

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

:

Bir örnek, kukla sorgu (DevServerA onu çalıştıran) çalıştı:

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

Ve hatası alıyorum (Bu sorguyu DevServerB\2K5'dan çalıştırarak) çalışmaların diğer yolundan beri (

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

Lütfen DevServerA numaralı telefondan DevServerB\2K5 referans numarasına başvurmama yardımcı olun. Teşekkürler.

+2

Teknik çizgi (/) ve eğik çizgi (\\) 'dir. – Steven

+0

Teşekkürler @Steven, başlığı güncelledim. –

cevap

16

4 yılında parça isimlerini, ilk bölümü, bağlı bir sunucu adım (yani bir meta veri nesnesi.) Bir sunucu değil, adı (yani bir konak.) adlandırın. Böylece bağlantılı sunucu FOO'nuzu adlandırabilir ve ana bilgisayar çubuğuna veya örneğini FOO \ BAR'a yönlendirebilirsiniz. Bir çizgi içerecek şekilde bağlantılı sunucu nesnesini adlandırmak bile, yine de sadece adını alıntı yaparak çok bölümlü adına kullanabilirsiniz: SQL SERVER 2005 tarihinde

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

köşeli parantez kullanmayı deneyin:

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

, şu oldu: içinde Giriş :

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

SQL Server sistem tarafından

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

değiştirildi mi ve hala hata mesajı alıyorum: '' yanlış sözdizimi yakın. '[DevServerB \ 2K5]' ve 'DevServerB \ 2K5'

herkes var mı başka fikirler:

Ben iki farklı şekilde adlandırılmış bir bağlantılı sunucu ile denedim? Ben kısmen yanlış:

DÜZELTME ertesi gün eklenen size Alan Robertson ederiz.biri sadece daha sonra aynı SQL dizesini kullanarak bir sorgu yazar eğer

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

[ve] kaldırılır ve bir görünümü, tasarruf AMA olamaz çalışır: biri gibi bir SQL deyimi kullanarak bir görünüm oluşturmak çalıştığında doğru şekilde.

Ben de böyle bir SQL deyimini yürütmek başardı: Ne istediğimi yapabilirim, ancak bir görünüm kaydedilir ve bir görünümü kullanmış olabilir eğer çok daha iyi olurdu

INSERT INTO [DevServerB\2K5].TestDB.dbo.tables (...) ... 
o zaman olur Tabloyu SELECT, INSERT ve UPDATE için [DevServerB \ 2K5] .TestDB veritabanı 'daki özgün sunucudan '\' nedeniyle bir görünüm oluşturmaya çalıştım ve başarısız oldu.

-ASR-

+0

SQL Server 2005'teki (aynı zamanda içine girdim) sorunla ilgili olarak CREATE veya ALTER VIEW ifadelerini kullanabilirsiniz. Tasarımcıda tanımlamayı kaydetmeyi engelleyen bir hata var gibi görünüyor, bu yüzden manuel olarak yapmanız gerekecek ;-) – Gorgsenegger

İlgili konular