SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

Powershell:Generator skryptów SQL Server Management Studio

To pytanie jest tutaj od jakiegoś czasu i prawdopodobnie znalazłeś już odpowiedź, ale dla tych, którzy szukają prostego sposobu, aby to zrobić, obecne wersje modułów Powershell serwera SQL mają natywne polecenia i metody, które obsługują tę funkcjonalność z SMO.

Możesz użyć Get-SqlDatabase i metody takie jak .Script() i .EnumScript().

Na przykład spowoduje to wygenerowanie skryptów CREATE dla funkcji zdefiniowanych przez użytkownika i zapisanie ich w pliku:

$Database = Get-SqlDatabase -ServerInstance $YourSqlServer -Name $YourDatabaseName

$MyFuncs = $Database.UserDefinedFunctions | Where Schema -eq "dbo"
$MyFuncs.Script() | Out-File -FilePath ".\SqlScripts\MyFunctions.sql"

Jeśli chcesz skryptować dane i elementy takie jak indeksy, klucze, wyzwalacze itp. będziesz musiał określić opcje skryptu, takie jak:

$scriptOptions = New-Object -TypeName Microsoft.SqlServer.Management.Smo.ScriptingOptions

$scriptOptions.NoCollation = $True
$scriptOptions.Indexes = $True
$scriptOptions.Triggers = $True
$scriptOptions.DriAll = $True
$scriptOptions.ScriptData = $True

$Database.Tables.EnumScript($scriptOptions) | Out-File -FilePath ".\AllMyTables.sql"

Zauważ, że metoda Script() nie obsługuje danych skryptowych. Użyj EnumScript() dla tabel.

Jeśli chcesz skryptować tylko dane, zgodnie z prośbą, możesz spróbować $scriptOptions.ScriptData = $True i $scriptOptions.ScriptSchema = $False .




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SQL Server kopiuje wszystkie wiersze z jednej tabeli do drugiej, tj. Zduplikowana tabela

  2. SQL Azure:wyjątek SMO podczas tworzenia skryptów obiektów w SSMS 2008 R2

  3. Rekordy SSRS nie wyświetlają się, gdy opcja (Zaznacz wszystko) jest używana, ale jest używana podczas wybierania określonej wartości

  4. nie można uzyskać dostępu do serwera SQL Server Developer sp1 ssis z ssms

  5. Nie można połączyć się z usługami SQL Server Analysis Services, mimo że wydaje się, że są uruchomione