কেবলমাত্র একটি আপডেট: এসকিউএল সার্ভার পাওয়ারশেল মডিউলগুলির বর্তমান সংস্করণগুলিতে (এসকিউএল সার্ভার ২০১৪ এবং তারপরে, আমি বিশ্বাস করি SS এসএসএমএস ১ on তে পরীক্ষিত), এই বিকল্পগুলির বেশিরভাগটি হ'ল দেশীয় কমান্ড এবং পদ্ধতি।
উদাহরণস্বরূপ, আপনি গেট-এসকিএলডিটাবেস এবং .Script () এবং .EnumScript () এর মতো পদ্ধতিগুলি ব্যবহার করতে পারেন । এটি সত্যিই দরকারী এবং সহজ, বিশেষত যদি আপনি আরও দানাদার পদ্ধতির (নির্দিষ্ট সারণী এবং অন্যান্য বস্তু) চান want
উদাহরণস্বরূপ, এটি ব্যবহারকারীর সংজ্ঞায়িত ফাংশনগুলির জন্য CREATE স্ক্রিপ্ট তৈরি করবে এবং ফাইলটিতে এটি সংরক্ষণ করবে:
$Database = Get-SqlDatabase -ServerInstance $YourSqlServer -Name $YourDatabaseName
$MyFuncs = $Database.UserDefinedFunctions | Where Schema -eq "dbo"
$MyFuncs.Script() | Out-File -FilePath ".\SqlScripts\MyFunctions.sql"
আপনি যদি স্ক্রিপ্ট ডেটা এবং সূচী, কী, ট্রিগার ইত্যাদির মতো উপাদানগুলি করতে চান তবে আপনাকে স্ক্রিপ্টিং বিকল্পগুলি নির্দিষ্ট করতে হবে:
$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"
নোট করুন যে স্ক্রিপ্ট () পদ্ধতি স্ক্রিপ্টিং ডেটা সমর্থন করে না। টেবিলগুলির জন্য এনামস্ক্রিপ্ট () ব্যবহার করুন।
একটি একক টেবিল :
($Database.Tables | Where Name -eq "MyTableName").EnumScript($scriptOptions)
আপনার সমস্ত দর্শন, প্রতিটি দর্শন অনুযায়ী একটি ফাইল সংরক্ষণ করুন , ড্রপ এবং ক্রিপ স্ক্রিপ্ট:
ForEach ($view in $($Database.Views | Where Schema -eq "dbo")) {
"`nIF OBJECT_ID('$($view.Name)') IS NOT NULL DROP VIEW $($view.Name);`n`n" | Out-File -FilePath ".\SqlScripts\$($view.Name).sql"
$view.Script() | Out-File -FilePath ".\SqlScripts\$($view.Name).sql" -Append
}
আশাকরি এটা সাহায্য করবে.