Aracılığıyla paylaş


SQL Server tanımlayıcıları PowerShell içinde kullanma

Kullandığınızda SQL Server sağlayıcı ile Windows PowerShell için Database Engine, varsayılan örnekleri için bile hem bilgisayar hem de örnek adlarını sağlar.

The provider uses SQL Server identifiers in Windows PowerShell paths.SQL Server identifiers can contain characters that Windows PowerShell does not support in paths.Bu karakterler, çıkış veya özel için tanımlayıcılar Windows PowerShell yolda kullanırken kodlama kullanmak gerekir.

Bilgisayar adları

SQLSERVER:\SQL aşağıdaki ilk düğümü çalıştıran bilgisayarın adıdır örnek, Database Engine; Örneğin, SQLSERVER:\SQL\MyComputer. Windows PowerShell örnek aynı bilgisayarda çalıştırıyorsanız Database Engine, yerine bilgisayarın adı veya localhost, hem de (yerel) kullanabilirsiniz. Localhost veya (yerel) kullanan komut dosyaları, farklı bilgisayar adlarını göstermek için değiştirilmesi gerek kalmadan, herhangi bir bilgisayarda çalıştırılabilir.Örneğin, bu komut için varsayılan örnek AdventureWorks örnek veritabanında yerel bilgisayarda gider:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks

Parantez karakterleri (yerel) normal Windows PowerShell Komut olarak kabul edilir.Aşağıdakilerden birini yapmalısınız:

  • Yol dizelerini tırnak içine alın:

    Set-Location "SQLSERVER:\SQL\(local)\DEFAULT\Databases\AdventureWorks"
    
  • Geri onay karakteri (') kullanarak ayraç çıkış.

    Set-Location SQLSERVER:\SQL\`(local`)\DEFAULT\Databases\AdventureWorks
    
  • Kendi onaltılı gösterim kullanılarak parantez kodlayın.

    Set-Location SQLSERVER:\SQL\%28local%29\DEFAULT\Databases\AdventureWorks
    

Escaping ve karakter kodlaması bu konuda daha ayrıntılı olarak açıklanmıştır.

Windows PowerShell komut dosyalarında yerel bilgisayarı belirtmek için içinde nokta (.)'ı kullanamazsınız.Döneme göre Windows PowerShell Komut olarak yorumlanır dönemin desteklenmiyor.

Varsayılan örnek adları

Birden çok örneğini çalıştırabilirsiniz Database Engine aynı bilgisayarda bir yürütülebilir program. Örnekleri Database Engine bilgisayarın adını ve MyComputer\MyInstance gibi bir örnek adı ile tanıtılır.

Her bilgisayarın tek bir varsayılan örnek olabilir Database Engine. Dosyayı yüklediğinizde varsayılan örnek için bir ad belirtmeyin.Bir bağlantıda yalnızca bir bilgisayar adı belirtirseniz dize, o bilgisayardaki varsayılan örneğine bağlı.Örnekler bilgisayardaki diğer tüm örneklerini yeniden adlandırılması gerekir.Kurulum sırasında belirttiğiniz örnek adı ve bağlantı dizeleri, bilgisayar adı hem de örnek adı belirtmeniz gerekir.

The SQL Server sağlayıcı requires that you always specify an örnek name. Varsayılan örnekleri için VARSAYıLAN örnek adını belirtmeniz gerekir.

SQL Server tanımlayıcıları, Windows PowerShell yolları

Windows PowerShell sağlayıcıları Windows dosya sistemi için kullanılan benzer bir yol yapısı'nı kullanarak veri hiyerarşileri karşı açık duruma getirmiş olursunuz.The SQL Server sağlayıcı implements paths to SQL Server objects. Için Database Engine, sürücü için SQLSERVER küme: ilk klasörü \SQL için küme ve veritabanı nesnelerini kapsayıcılar ve öğeleri başvurulur. Bu yol, Satıcı tablosundaSatın alma şemaAdventureWorks adlı bir varsayılan örnek veritabanıDatabase Engine:

SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks\Tables\Purchasing.Vendor

SQL Server / tanımlayıcılardır adları SQL Server Tablo veya sütun adları gibi nesneler. Iki tür vardır. SQL Server tanımlayıcılar:

  • Sınırlı normal tanımlayıcılardır bir küme karakterden oluşan Windows PowerShell yolları da desteklenir.Bu adları değiştirilmiş olmadan Windows PowerShell yolları kullanılabilir.

  • Ayrılmış tanımlayıcı desteklenmeyen Windows PowerShell yol adlarında bazı karakterler kullanabilirsiniz.Ayrılmış tanımlayıcı köşeli ayraçlar ([IdentifierName]) içine alınır, bracketed tanımlayıcılar olarak adlandırılır ve çift tırnak ("IdentifierName") içine alınır, tanımlayıcıları tırnak içine alınmış.Ayrılmış bir tanıtıcı Windows PowerShell yolu desteklenmeyen karakterler kullanıyorsa, karakterleri kodlanmış ya tanımlayıcı bir kapsayıcı veya öğe adı olarak kullanmadan önce virgüllerden önce.Tüm karakterlerin kodlama çalışır.Iki nokta üst üste karakteri gibi bazı karakterler virgüllerden (:), önce olamaz.

Kodlama ve tanımlayıcıları kod çözme

Windows PowerShell yol adlarında desteklenmeyen karakterler temsil, veya olabilir, onaltılık değeri gibi karakteri temsil eden bit deseni izleyen "%" karakteri olarak kodlanmış"**%**xx".Kodlama her zaman Windows PowerShell yolu desteklenmeyen karakterler işlemek için kullanılabilir.

The Encode-SqlName cmdlet takes as input a SQL Server identifier.Bu, "% xx" ile kodlanmış Windows PowerShell dil tarafından desteklenmeyen karakterler içeren bir dize verir.The Decode-SqlName cmdlet takes as input an encoded SQL Server identifier and returns the original identifier.Örneğin:

  • Bu komut, "Tablo % 3ATest" dizesini döndürür:

    Encode-SqlName "Table:Test"
    
  • Bu komut, "Tablo: test" döndürür:

    Decode-SqlName "Table%3ATest"
    

Windows PowerShell davranırlar ayrılmış tanımlayıcı belirttiğinizde, ya da kodlanmış karakter değerleri kendiniz veya kullanım sağlayabilirsiniz Kodla SqlName şifrelenmiş karakterleri sağlamak için.Örneğin, tabloyu içeren şemaya gidilen [Tablo: sınama], you can CD kodlanmış sürüm sağlayarak tablosuna ":" karakter:

Set-Location Table%3ATest

Alternatif olarak kullanın Kodla SqlName PowerShell tarafından desteklenen bir ad oluşturmak için:

Set-Location (Encode-SqlName "Table:Test")

Bunlar tarafından kodlanmış karakterler yer Kodla SqlName ile Kodu çözülen veKod çözme SqlName:

Karakter

\

/

:

%

<

>

*

?

[

]

|

Onaltılı kodlaması

% 5 c

% 2F

% 3A

%25

% 3 c

% 3E

% 2A

% 3F

% 5B

% 5 d

c % 7

Escaping karakterler

Genellikle, izin verilen karakter çıkış Windows PowerShell geri onay çıkış karakteri (') kullanabilirsiniz SQL Server Ayrılmış tanımlayıcı ancak Windows PowerShell yol adı değil. Virgüllerden bazı karakterler, ancak önce olamaz.Örneğin, iki nokta üst üste karakteri (:) Windows PowerShell. çıkış olamazTanımlayıcılar, bir karakter ile kodlanmış gerekir.Kodlama, tüm karakterler için works kodlama çünkü escaping daha daha güvenilirdir.

Bu, bir # character escaping bir örnektir:

cd SQLSERVER:\SQL\MyComputer\MyInstance\MyDatabase\MySchema\`#MyTempTable

Geri onay karakteri ('), üst sol ESC anahtarının altında bir klavye tuşu genellikle açıktır.

SQL Server tanımlayıcıları davranırlar içinde

Bazı SQL Server davranırlar giriş olarak bir tanıtıcı götüren bir parametresi vardır. Parametre değerleri, dize değişkenleri veya tırnak içinde dize sabitleri olarak genellikle sağlanır.Tanımlayıcı dize sabitleri olarak mı, yoksa değişkenleri sağlandığında, Windows PowerShell tarafından desteklenen karakter kümesiyle çakışma yok.