Udostępnij za pośrednictwem


Za pomocą SQL Server identyfikatorów PowerShell

Podczas korzystania z SQL Server dostawca dla środowiska Windows PowerShell z Aparat baz danych, musisz podać nazwy komputera i wystąpienie, nawet w przypadku wystąpienia domyślnego.

The provider uses SQL Server identifiers in Windows PowerShell paths.SQL Server identifiers can contain characters that Windows PowerShell does not support in paths.Należy te znaki escape lub użyć specjalnego kodowania dla nich podczas korzystania z identyfikatorami w ścieżkach Windows PowerShell.

Nazwy komputerów

Nazwa komputera, na którym jest uruchomione wystąpienie jest pierwszym węźle po SQLSERVER:\SQL Aparat baz danych; na przykład SQLSERVER:\SQL\MyComputer. Jeśli używasz Windows PowerShell na tym samym komputerze co wystąpienie Aparat baz danych, można użyć localhost lub (lokalny) zamiast nazwy komputera.Skrypty korzystające localhost lub (lokalny) można uruchomić na komputerze bez konieczności zmienione w celu uwzględnienia nazwy innego komputera.Na przykład polecenie Adresat AdventureWorks2008R2 przykładowej bazy danych w wystąpienie domyślne na komputerze lokalnym:

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

Znaki nawiasu (lokalny) zazwyczaj są traktowane jako poleceń przez Windows PowerShell.Należy albo:

  • Ciągi ścieżka należy ująć w cudzysłowy:

    Set-Location "SQLSERVER:\SQL\(local)\DEFAULT\Databases\AdventureWorks2008R2"
    
  • Escape nawias za pomocą znaków podziałki Wstecz (').

    Set-Location SQLSERVER:\SQL\`(local`)\DEFAULT\Databases\AdventureWorks2008R2
    
  • Koduj nawias za pomocą ich reprezentacji szesnastkowym.

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

Ucieczce i kodowanie znaków są szczegółowo w dalszej części tego tematu.

Nie można używać kropki (.), aby określić komputer lokalny w skryptach PowerShell.Okres nie jest obsługiwany, ponieważ okres jest interpretowane jako polecenia przez PowerShell.

Domyślne nazwy instancji

Można uruchomić wiele wystąpień Aparat baz danych programu wykonywalnego na tym samym komputerze.wystąpienie Aparat baz danych są identyfikowane przez nazwę komputera i nazwę instancji, takich jak MyComputer\MyInstance.

Każdy komputer może mieć jednego wystąpienie domyślne Aparat baz danych.Nie należy określać nazwę wystąpienie domyślne, po zainstalowaniu go.Określić nazwę komputera w połączeniu ciąg, są podłączone do wystąpienie domyślne na tym komputerze.Wszystkie wystąpienia na komputerze muszą być nazwane wystąpień.Należy określić wystąpienie nazwy podczas instalacji i ciągów połączenia należy określić nazwę komputera i wystąpienie nazwy.

SQL Server dostawca wymaga zawsze określenia wystąpienie nazwy.Dla wystąpienie domyślnego należy określić nazwę DOMYŚLNĄ.

SQL ServerIdentyfikatory w Windows PowerShell ścieżek

Windows PowerShell dostawców narazić hierarchie danych przy użyciu strukturze ścieżka podobnej do tej stosowanej dla systemu plików. SQL Server dostawca implementuje ścieżki do SQL Server obiektów.Dla Aparat baz danych, dysk jest zestaw do SQLSERVER:, pierwszy folder jest zestaw \SQL i w bazie danych obiektów są wywoływane jako kontenery i elementyJest to ścieżka do Vendor tabela w Purchasing schemat AdventureWorks2008R2 bazy danych w wystąpienie domyślne Aparat baz danych:

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

SQL Serveridentyfikatory są nazwy SQL Server obiektów, takich jak nazwy tabela lub kolumna.Istnieją dwa rodzaje SQL Server identyfikatorów:

  • Regularne identyfikatory są ograniczone do zestaw znaków, które są także obsługiwane w ścieżkach Windows PowerShell.Te nazwy mogą być używane w Windows PowerShell ścieżki bez zmiany.

  • Rozdzielany identyfikatorów można używać znaków nie jest obsługiwane w nazwy ścieżka Windows PowerShell.Identyfikatory rozdzielane są nazywane identyfikatory w nawiasach kwadratowych, jeśli są one ujęte w nawiasy kwadratowe ([IdentifierName]) i identyfikatorów w cudzysłowach, jeśli są one ujęte w podwójny cudzysłów ("IdentifierName").Jeśli identyfikator z ogranicznikami używa znaków nie jest obsługiwane w ścieżkach Windows PowerShell, znaki muszą być kodowane lub wyjściowym przed użyciem identyfikator jako kontener lub element nazwy.Works kodowania dla wszystkich znaków.Niektóre znaki, takie jak znak dwukropka (:), nie może być wyjściowym.

Kodowanie i dekodowanie identyfikatory

Znaki, które nie są obsługiwane w Windows PowerShell nazwy ścieżka mogą być reprezentowane lub kodowane jako % znak następuje szesnastkową wartość dla wzorzec bitowy znak, który reprezentuje w "**%**xx".Kodowanie zawsze można używać do obsługi znaków, które nie są obsługiwane w ścieżkach Windows PowerShell.

SqlName kodowanie potrzebny aplet polecenia jako dane wejściowe SQL Server identyfikator.Wyprowadza go ciąg znaków, które nie są obsługiwane przez język Windows PowerShell zakodowany z "% xx".SqlName dekodowania potrzebny aplet polecenia jako wejściowego zakodowanego SQL Server identyfikator i zwraca identyfikator oryginalnego.Na przykład:

  • To polecenie zwraca ciąg "Tabeli % 3ATest":

    Encode-SqlName "Table:Test"
    
  • To polecenie zwraca "Tabeli: badanie":

    Decode-SqlName "Table%3ATest"
    

Po określeniu identyfikatory rozdzielane w aplety poleceń środowiska Windows PowerShell można albo podać wartości znaków zakodowanych samodzielnie lub wykorzystania SqlName kodowanie zapewnienie znaki zakodowane.Na przykład, jeśli już po przejściu do schematu, który zawiera tabela [tabela: Test], możesz cd do tabela, zapewniając wersja zakodowanej ":" znak:

Set-Location Table%3ATest

Alternatywnie można skorzystać z SqlName Koduj tworzenie nazw obsługiwanych przez system Windows PowerShell:

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

Są to znaki zakodowane przez SqlName kodowanie i zdekodowaną przez Dekodowania SqlName:

Znak

\

/

:

%

<

>

*

?

[

]

|

Szesnastkowe kodowanie

% 5 C

% 2F

% 3A

%25

% 3 C

% 3E

% 2A

% 3F

% 5B

% 5 D

% 7 C

Znaki ucieczki

Często można użyć znaku anulowania tylnej osi Windows PowerShell (') do znaków escape, które są dozwolone w SQL Server przecinkami identyfikatorów, ale nie Windows PowerShell ścieżka nazwy.Nie można jednak wyjściowym niektóre znaki.Na przykład nie może wydostawać dwukropka (:) w Windows PowerShell.Muszą być kodowane identyfikatory tym znakiem.Kodowanie jest bardziej niezawodne niż ucieczce, ponieważ kodowanie działa dla wszystkich znaków.

Jest to przykład ucieczce znaku #:

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

Znak tylnej osi (') jest zazwyczaj na klucz w lewym górnym rogu klawiatury w obszarze klawisz ESC.

SQL ServerIdentyfikatory w apletów

Niektóre SQL Server apletów mieć parametr, która pobiera identyfikator jako danych wejściowych.Wartości parametrów są zwykle dostarczane jako ciąg w cudzysłowie stałe lub zmienne tekstowe.Gdy identyfikatory są podane jako ciąg stałe lub zmienne, nie występuje konflikt z zestaw znaków, które są obsługiwane przez system Windows PowerShell.