SMO (SQL Management Object) to biblioteki .NET pozwalające na pracę z SQL server. Ponieważ PowerShell świetnie integruje się z .NET, to jednym ze sposobów pracy z SQL jest właśnie SMO. Mając do dyspozycji również SQL Provider administratorzy zapewne chętniej wybiorą pracę z modułem SQLPS, jednak dla programistów SMO może być dość ciekawe…
Na stronie https://msdn.microsoft.com/en-us/library/ms162209.aspx znajduje się diagram pozwalający zorientować się, w strukturze obiektów opisujących SQL. Na diagramiemożna zobaczyć elementy w kolorze pomarańczowym (są to kolekcje obiektów) oraz niebieskie (są to opisy klas/obiektów). W poniższym screenshot widać że na serwerze znajduje się kolekcja DatabaseCollection. Obiekty znajdujące się w tej kolekcji to obiekty typu Database. Obiekt Database jest z kolei zbudowany z następnych właściwości, a te czasami są następnymi kolekcjami:
Opis dostępnych SMO wraz z informacją, której biblioteki kiedy należy używać znajduje się pod adresem https://msdn.microsoft.com/en-us/library/ms162233.aspx. Drążąc dokumentację klas dojdziesz w końcu do opisów metod. Nie przerażaj się tym, że w części syntax opisane są tylko składnie dla C#, C++, F# i VB:
Zazwyczaj w dolnej części strony można odnaleźć przykłady, które pokazują, jak skorzystać z danej funkcjonalności korzystając z PowerShell: