Za pomocą dostawcy programu SQL Server PowerShell
SQL Server Dostawca środowiska Windows PowerShell udostępnia hierarchię SQL Server obiektów w ścieżkach podobne do ścieżki systemu plików.Można użyć ścieżki, aby zlokalizować obiekt, a następnie użyj metody z SQL Server modeli zarządzania obiektu (SMO) do wykonywania działań na obiekty.
SQL Server Hierarchii PowerShell
Za pomocą środowiska Windows PowerShell dostawców produktów, których dane lub modeli obiektów może być reprezentowany w hierarchii narazić hierarchie.Hierarchii są udostępniane przy użyciu struktury dysk i ścieżka podobne używa systemu Windows systemu plików.
Każdy dostawca Windows PowerShell implementuje jeden lub więcej dysków.Każdy dysk jest głównym węzłem hierarchii obiektów pokrewnych. SQL Server dostawca implementuje SQLSERVER: dysk.SQLSERVER: dysk ma cztery foldery podstawowego. Każdy folder i jego podfolderów reprezentują zestaw obiektów, które są dostępne przy użyciu SQL Server modelu obiektów zarządzania.Kiedy są skupia się w podfolderze w ścieżka że rozpoczyna się od jednego z tych folderów podstawowe, umożliwia metod z modelu obiektu skojarzonego wykonywać czynności na obiekcie, który jest reprezentowany przez węzeł.Foldery Windows PowerShell implementowane przez SQL Server 2008 R2 dostawca są wymienione w poniższej tabela.
Folder |
Obszar nazw modelu obiektów programu SQL Server |
Obiekty |
---|---|---|
SQLSERVER:\SQL |
Microsoft.SqlServer.Management.Smo Microsoft.SqlServer.Management.Smo.Agent |
Obiekty bazy danych, takie jak tabel, widoków i procedur przechowywanych. |
SQLSERVER:\SQLPolicy |
Zarządzanie oparte na zasadach obiektów, takich jak zasady i faset. |
|
SQLSERVER:\SQLRegistration |
Obiekty zarejestrowane serwera, takie jak serwery zarejestrowane i grup serwerów. |
|
SQLSERVER:\Utility |
Narzędzie obiektów, takich jak zarządzane wystąpienia Aparat baz danych. |
|
SQLSERVER:\DAC |
Microsoft.SqlServer.Management.DAC |
Obiekty aplikacji warstwie danych, takie jak pakiety DAC i operacje, takie jak wdrażanie DAC. |
SQLSERVER:\DataCollection |
Obiekty modułów zbierających dane, takie jak zestawy kolekcja i magazyny konfiguracja. |
Na przykład można użyć folderu SQLSERVER:\SQL uruchomić ścieżek, reprezentujące każdy obiekt, który jest obsługiwany przez model obiektów SMO.Początkowe części ścieżka SQLSERVER:\SQL jest SQLSERVER:\SQL\nazwa_komputera\nazwa_wystąpienia.Należy określić nazwę komputera.Można określić localhost lub '(local') dla komputera lokalnego.Zawsze należy określić nazwę instancji, nawet w przypadku wystąpienie domyślnego.Dla wystąpienia domyślnego należy określić domyślne.Węzły po nazwie wystąpienie alternatywne między klas obiektów (takich jak Database lub View) i nazwach obiektów (takich jak AdventureWorks2008R2).Schematy nie są reprezentowane jako klas obiektów.Po określeniu węzła najwyższego poziom obiektu w schemacie, na przykład tabela lub widoku, należy określić nazwę obiektu w formacie SchemaName.ObjectName.
Jest to ścieżka Vendor tabela w Purchasing schemat AdventureWorks2008R2 bazy danych w wystąpienie domyślne Aparat baz danych na komputerze lokalnym:
SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2008R2\Tables\Purchasing.Vendor
Aby uzyskać więcej informacji na temat hierarchii modelu obiektów SMO, zobacz Diagram modelu obiektów SMO.
Obiekt klasy węzłów w ścieżka są skojarzone z klasy zbioru w modelu obiektu skojarzonego.Węzły nazwy obiektów skojarzonych z klasy obiektu modelu skojarzonego obiektu, jak w poniższej tabela.
Path |
Klasa obiektów SMO |
---|---|
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases |
|
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2008R2 |
Ilekroć odwołać wystąpienie Aparat baz danych w ścieżka, SQL Server Dostawca wykorzystuje SMO do otwarcia połączenia uwierzytelniania systemu Windows do instancji.Połączenia przy użyciu poświadczenia konta systemu Windows uruchomione w sesja środowiska Windows PowerShell. SQL Server dostawca nie korzysta z SQL Server uwierzytelniania.
Poruszanie się po SQL Server ścieżki
Windows PowerShell implementuje apletów nawigacji hierarchie dostawca i wykonywanie podstawowych operacji na bieżącego obiektu.Aplety poleceń są często używane, mają one krótkie, kanoniczny aliasów.Jest również jeden zestaw aliasy, który mapuje apletów podobne polecenia wiersz polecenia, a inny zestaw poleceń powłoki systemu UNIX.
SQL Server dostawca implementuje podzbiór poleceń dostawca, przedstawione w poniższej tabela.
aplet polecenia |
Kanoniczną alias. |
cmd alias |
Alias powłoki systemu UNIX |
Opis |
---|---|---|---|---|
GET lokalizacji |
GL |
pwd |
pwd |
Pobiera bieżący węzeł. |
Ustaw lokalizację |
SL |
CD i chdir |
CD i chdir |
Zmiany bieżącego węzła. |
GET-ChildItem |
gci |
dir |
ls |
Wyświetla listę obiektów przechowywanych w bieżącym węźle. |
Pobranie zapasu |
GI |
Zwraca właściwości bieżącego element. |
||
Zmiana nazwy elementu |
rni |
rn |
ren |
Zmienia nazwę obiektu. |
Usuń element |
RI |
del, pulpitu zdalnego |
RM rmdir |
Usuwa obiekt. |
Na przykład, jeden z następujących zestawów apletów lub aliasy służy do pobierania listy SQL Server wystąpień dostępne przechodząc do folderu SQLSERVER:\SQL, a następnie żąda listy elementów podrzędność folderu:
Przy użyciu apletu polecenia pełnej nazwy:
Set-Location SQLSERVER:\SQL Get-ChildItem
Za pomocą aliasów kanonicznym:
sl SQLSERVER:\SQL gci
Za pomocą aliasów cmd:
cd SQLSERVER:\SQL dir
Za pomocą aliasów powłoki systemu UNIX:
cd SQLSERVER:\SQL ls
Ważne: Niektóre SQL Server identyfikatory (nazwy obiektu) zawiera znaki, których nie obsługuje środowiska Windows PowerShell w nazwy ścieżka.Aby uzyskać więcej informacji na temat używania nazw zawierających te znaki, zobacz Za pomocą SQL Server identyfikatorów PowerShell.
Za pomocą Get-ChildItem
Informacje zwrócone przez Get childitem (lub jego dir i ls aliasów) zależy od lokalizacji w SQLSERVER: ścieżka.
Ścieżka lokalizacji |
Wyniki Get-ChildItem |
---|---|
SQLSERVER:\SQL |
Zwraca nazwę komputera lokalnego.Jeśli użyto SMO lub WMI połączyć wystąpienia Aparat baz danych na innych komputerach tych komputerów są także wyświetlane. |
SQLSERVER:\SQL\nazwa_komputera |
Listy wystąpień Aparat baz danych na komputerze. |
SQLSERVER:\SQL\nazwa_komputera\nazwa_wystąpienia |
Lista typów obiektów najwyższego poziom w wystąpienie, takich jak punkty końcowe, certyfikaty i baz danych. |
Węzeł klasy obiektu, takich jak bazy danych |
Lista obiektów tego typu, takich jak listy baz danych: master, model, AdventureWorks20008R2. |
Obiekt takie jak nazwa węzła AdventureWorks2008R2 |
Lista typów obiektów zawartych wewnątrz obiektu.Na przykład bazy danych pojawi się lista typów obiektów takich jak tabele i widoki. |
Domyślnie Get childitem nie są wyświetlane wszystkie obiekty systemowe.Użyj Force parametru, aby wyświetlić obiekty systemu, takie jak obiekty w sys schematu.
W tym przykładzie przedstawiono komputer lokalny i dowolnego komputera, na którym dokonano SMO lub WMI połączenia:
Set-Location SQLSERVER:\SQL
Get-ChildItem
W tym przykładzie przedstawiono wystąpienia Aparat baz danych na komputerze lokalnym:
Set-Location SQLSERVER:\SQL\localhost
Get-ChildItem
W tym przykładzie przedstawiono główne klasy obiektów dostępnych w wystąpienie domyślne Aparat baz danych.Lista zawiera nazwy, jak punkty końcowe, certyfikaty i baz danych:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
Get-ChildItem
W tym przykładzie lista baz danych dostępne w wystąpienie domyślne aparatu bazy danych.Force Parametr jest używany do obejmują bazy danych systemu jak master i model:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-ChildItem -force
Wykonywanie akcji na węzłach ścieżki
Po przeszedł do węzła w Windows PowerShell ścieżka, można wykonać dwa rodzaje działań:
Można uruchamiać aplety poleceń środowiska Windows PowerShell działają na węzłach, takich jak Nazwy elementu.
Można wywołać metody ze skojarzonym SQL Server management object model, takich jak obiekty SMO.Na przykład przejdź do węzła baz danych w ścieżka, można użyć metod i właściwości Database klasy
SQL Server dostawca jest używany do zarządzania obiektami w wystąpienie z Aparat baz danych.Nie jest używany do pracy z danymi w bazach danych.Po przejściu do widoku lub tabela nie umożliwia dostawca zaznacz, wstawiania, aktualizacji lub usuwania danych.Użyj Polecenie Wywołaj-Sqlcmd polecenia lub zmieniać dane w tabelach i widokach ze środowiska Windows PowerShell.Aby uzyskać więcej informacji, zobacz Za pomocą polecenia polecenie Wywołaj-Sqlcmd.
Wyświetlanie właściwości i metod
Można użyć Członkowskie Get polecenia do przeglądania metod i właściwości dostępne dla konkretnych obiektów lub klas obiektów.
W tym przykładzie ustawia zmienną środowiska Windows PowerShell SMO Database klasy i zawiera metody oraz właściwości:
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar | Get-Member –Type Methods
$MyDBVar | Get-Member -Type Properties
Można również użyć Członkowskie Get listę metod i właściwości, które są skojarzone z węzła końcowego ścieżka Windows PowerShell.
W tym przykładzie nawiguje do węzła baz danych w SQLSERVER: Ścieżka i list właściwości kolekcja:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-Item . | Get-Member -Type Properties
W tym przykładzie nawiguje do węzła AdventureWorks2008R2 w SQLSERVER: Ścieżka i list właściwości obiektu:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2008R2
Get-Item . | Get-Member -Type Properties
Za pomocą metod i właściwości
Można odwoływać się do właściwości obiektów SMO polecenia Windows PowerShell.W tym przykładzie użyto SMO schematu właściwość w celu uzyskania listy tabel z Sales schematu w AdventureWorks2008R2:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2008R2\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}
W tym przykładzie użyto SMO skryptu przez metoda skrypt zawierający CREATE VIEW musi być ponownie utworzyć widoki w sprawozdaniu AdventureWorks2008R2:
Remove-Item C:\PowerShell\CreateViews.sql
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2008R2\Views
foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath C:\PowerShell\CreateViews.sql -append }
W tym przykładzie użyto SMO Tworzenie metoda tworzenia bazy danych, a następnie używa Państwo właściwość do pokazywania, czy istnieje baza danych:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar.Parent = (Get-Item ..)
$MyDBVar.Name = "NewDB"
$MyDBVar.Create()
$MyDBVar.State
Definiowanie niestandardowych dysków
Windows PowerShell umożliwia zdefiniowanie dysków wirtualnych, które są nazywane dyskami PowerShell.Te mapowania nad początkową węzły instrukcja ścieżka.Są one zazwyczaj używane skrócenie ścieżki, często wpisywanych.SQLSERVER: ścieżki można uzyskać długie, mając miejsce w oknie Windows PowerShell i wymagające dużej ilości wpisywanie.Jeśli zamierzasz dużo pracy w węźle określonej ścieżka, można zdefiniować dysk środowiska Windows PowerShell niestandardowych map do tego węzła.Na przykład, jeśli przeprowadzasz partii pracy w AdventureWorks2008R2 bazy danych, można utworzyć AWDB: dysk:
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2008R2
Następnie można użyć AWDB: dysk, aby skrócić ścieżka do AdventureWorks2008R2 obiektów, takich jak Purchasing.Vendor tabela:
Set-Location AWDB:\Tables\Purchasing.Vendor
Zarządzanie SQL Server uwierzytelniania połączeń
Domyślnie SQL Server Dostawca wykorzystuje konto systemu Windows, na którym jest uruchomiony połączenie uwierzytelniania systemu Windows, aby Aparat baz danych.Aby SQL Server uwierzytelniania połączenia należy skojarzyć SQL Server poświadczenia logowania z dysku wirtualnego, a następnie użyj polecenia Zmień katalog (cd) do łączenia się z tego dysku.W Windows PowerShell poświadczenia zabezpieczeń można skojarzyć tylko z dysków wirtualnych.
Ten skrypt tworzy funkcja o nazwie sqldrive można utworzyć dysk wirtualny, który jest skojarzony z określonym SQL Server uwierzytelniania logowania i wystąpienie.
function sqldrive
{
param( [string]$name, [string]$login = "MyLogin", [string]$root = "SQLSERVER:\SQL\MyComputer\MyInstance" )
$pwd = read-host -AsSecureString -Prompt "Password"
$cred = new-object System.Management.Automation.PSCredential -argumentlist $login,$pwd
New-PSDrive $name -PSProvider SqlServer -Root $root -Credential $cred -Scope 1
}
Następnie można utworzyć dysk wirtualny o nazwie SQLAuth: uruchamiając polecenie:
sqldrive SQLAuth
Sqldrive funkcja monituje o wprowadzenie hasła podczas logowania, maskowanie hasła podczas wpisywania w.Następnie przy każdym użyciu polecenia Zmień katalog (cd) aby połączyć ścieżka za pomocą SQLAuth: dysk, wszystkie operacje są wykonywane za pomocą SQL Server Uwierzytelnianie poświadczenia logowania, które dostarczone podczas tworzenia dysku.
Korzystanie z nazw Microsoft.SqlServer.Managment.Smo.Wmi
Oprócz SQL Server Management Object Model obszarów nazw, które są skojarzone z \SQL, \SQLPolicy i \SQLRegistration folderów, można również użyć klasy w Microsoft.SqlServer.Management.Smo.Wmi obszaru nazw.Najczęściej tego obszaru nazw jest do wykonywania kwerend i zarządzania stanem realizacji każdego wystąpienie usługi Aparat baz danych lub magazynu zasad.
W tym przykładzie przedstawiono sposób użycia ManagedComputer klasy, aby zatrzymać i uruchomić usługa z systemem wystąpienie domyślne Aparat baz danych.
# Get a reference to the ManagedComputer class.
cd SQLSERVER:\SQL\localhost
$Wmi = (get-item .).ManagedComputer
# Display the object properties.
$Wmi
# Get a reference to the default instance of the Database Engine.
$DfltInstance = $Wmi.Services["MSSQLSERVER"]
# Display the state of the service.
$DfltInstance
# Stop the service.
$DfltInstance.Stop(); write-host "Stopped"
# Refresh the cache and look at the state.
$DfltInstance.Refresh(); $DfltInstance
# Start the service again.
$DfltInstance.Start(); write-host "Started"
Ostrzeżenie
Aby użyć klas w tym obszarze nazw przeciwko komputerów zdalnych, należy skonfigurować Zaporę systemu Windows, aby umożliwić WMI DCOM połączeń.Aby uzyskać więcej informacji, zobacz Konfigurowanie zapory systemu Windows w celu umożliwienia dostępu do programu SQL Server.
Zarządzanie kartę zakończenia
Uzupełnianie karcie Windows PowerShell zmniejsza ilość wpisywania należy wykonać.Po wpisaniu część nazwy ścieżka lub apletu polecenia po naciśnięciu przycisku kartę klucz w celu uzyskania listy elementów, których nazwy odpowiadają już wpisany.Następnie można wybrać żądany element z listy bez konieczności wpisywania pozostałą część nazwy.
Jeśli pracujesz w bazie danych, zawierająca wiele obiektów, list kartę zakończenia może stać się bardzo duży.Niektóre SQL Server Typy obiektów, takie jak widoki, również mają dużej liczby obiektów systemu.
SQL Server Trzy zmienne systemowe używane do kontrolowania ilości informacji przedstawionych przez kartę zakończenia wprowadzenie przystawek i Get childitem.
**$SqlServerMaximumTabCompletion =**n
Określa maksymalną liczbę obiektów, które mają zostać uwzględnione w liście kartę zakończenia.If you select Tab at a path node having more than n objects, the tab-completion list is truncated at n.n is an integer.0 jest ustawieniem domyślnym, a oznacza brak limitu liczby obiektów wymienionych.**$SqlServerMaximumChildItems =**n
Określa maksymalną liczbę obiektów wyświetlanych przez Get childitem.If Get-ChildItem is run at a path node having more than n objects, the list is truncated at n.n is an integer.0 jest ustawieniem domyślnym, a oznacza brak limitu liczby obiektów wymienionych.$SqlServerIncludeSystemObjects = { $True | $False }
Jeśli $True, obiekty systemowe są wyświetlane przez kartę zakończenia i Get-childitem.Jeśli $False, obiekty systemowe nie są wyświetlane.Ustawieniem domyślnym jest $False.
Poniższy przykład Ustawia wszystkie trzy zmienne i ich ustawienia:
$SqlServerMaximumTabCompletion = 20
$SqlServerMaximumChildItems = 10
$SqlServerIncludeSystemObjects = $False
dir variable:sqlserver*
Zobacz także