sql >> Database teknologi >  >> Database Tools >> SSMS

Powershell:SQL Server Management Studio Script Generator

Dette spørgsmål har været her et stykke tid, og du har sikkert fundet dit svar nu, men for dem, der leder efter en enkel måde at gøre dette på, har de nuværende versioner af SQL server Powershell-moduler indbyggede kommandoer og metoder, der understøtter denne funktionalitet fra SMO.

Du kan bruge Get-SqlDatabase og metoder såsom .Script() og .EnumScript().

For eksempel vil dette generere CREATE scripts til brugerdefinerede funktioner og gemme det i fil:

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

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

Hvis du ønsker at scripte data og elementer som indekser, nøgler, triggere osv., skal du angive scriptingmulighederne, sådan her:

$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"

Bemærk, at Script()-metoden ikke understøtter scriptdata. Brug EnumScript() til tabeller.

Hvis du kun vil scripte data, som du bliver bedt om, kan du prøve $scriptOptions.ScriptData = $True og $scriptOptions.ScriptSchema = $False .




  1. Sådan fjerner du et præfiksnavn fra hvert tabelnavn i en mysql-database

  2. Advarsel:mysql_query() [function.mysql-query]:Adgang nægtet for brugeren 'ODBC'@'localhost' (ved hjælp af adgangskode:NEJ)

  3. Intellisense fungerer ikke SSMS 2014

  4. SQL Server Management Studio-fejl:Script mislykkedes for UserDefinedFunction