Sunday, August 17, 2014

Generate and publish Scripts in SQL

ഡേറ്റാബേസിന്റെ ബാക്കപ്പ് വഴി എടൂത്ത ഡേറ്റാബേസ് എങ്ങനെയണ് റീസ്റ്റോർ ചെയ്യുന്നതെന്ന് നമ്മൾ കഴിഞ്ഞ പോസ്റ്റിൽ കണ്ടൂ. എപ്പോഴും ഡേറ്റാബേസിന്റെ മുഴുവൻ ബാക്കപ്പ് നമുക്ക് ആവശ്യമായി വരികയില്ല. ബാക്കപ്പ് വഴി ഡേറ്റാബേസ് എടുക്കുമ്പോൾ അതിന്റെ സൈസ് വളരെക്കൂടൂതലും ആയിരിക്കും. എന്നാൽ സ്ക്രിപിറ്റ് വഴി നമുക്ക് സൈസ് കുറച്ച് ഡേറ്റാബേസിന്റെ 'ബാക്കപ്പ്' എടുക്കാൻ നമുക്ക് കഴിയും. നമൂക്ക് ആവശ്യമായ ടേബിളിന്റെയോ പ്രൊസീജിയറിന്റെയോ മാത്രമായി ബാക്കപ്പ് എടുക്കാൻ 'സ്ക്രിപിറ്റ്' വഴി സാധിക്കൂം. ഈ സ്ക്രിപിറ്റ് ക്വറി വിൻഡോയിൽ ഓപ്പണാക്കി എക്സിക്യൂട്ട് ചെയ്യിച്ചാൽ നമുക്ക് ആവശ്യമായ ടേബിൾ/പ്രൊസീജിയർ ഡേറ്റാബേസിൽ 'ജനറേറ്റ്' ആവുകയും ചെയ്യും. എങ്ങനെയാണ് ഡേറ്റാബേസിന്റെ/ഡേറ്റാബേസിൽ നിന്ന് സ്ക്രിപിറ്റ് എടുക്കുന്നതെന്ന് നോക്കാം

DB : SQL Server 2008 R2

സ്റ്റെപ്പ് 1
ഏത് ഡേറ്റാബേസിന്റെ സ്ക്രിപിറ്റ് ആണോ എടുക്കേണ്ടത് ആ ഡേറ്റാബേസിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്ത് ജനറേറ്റ് സ്ക്രിപിറ്റ് എന്ന മെനുവിൽ എത്തുക. (Database(right Click) - Tasks-Generate Scripts...)


സ്റ്റെപ്പ് 2
Generate and Publish Scripts എന്ന വിൻഡോ യിൽ  Script എടുക്കുന്നതിന്റെ സ്റ്റെപ്സ് നൽകിയിട്ടുണ്ട്. Introduction ഭാഗത്ത് നമുക്കൊന്നും ചെയ്യാനില്ലാത്തതുകൊണ്ട് Choose Objects ല് ക്ലിക്ക് ചെയ്തോ  Next ബട്ടൺ ഉപയോഗിച്ചോ അടൂത്ത സ്റ്റെപ് ആയ Choose Objects ല് എത്തുക.


സ്റ്റെപ് 3

Choose Objects ല് Script entire database and all databases objects , Select specific database objects എന്നിങ്ങനെ രണ്ട് റേഡിയോ ബട്ടൺ കാണാം. അതിൽ ആദ്യത്തേത് സെലക്റ്റ് ചെയ്താൽ ഡേറ്റാബേസ് മുഴുവനായി(ഡേറ്റാബേസിന്റെ ക്രിയേഷൻ മുതൽ ടേബിളും പ്രൊസീജയറും ഉൾപ്പെടെ) സ്ക്രിപിറ്റ് എടുക്കാം.Select specific database objects ആണ് സെലക്റ്റ് ചെയ്യുന്നതെങ്കിൽ നമുക്ക് ആവശ്യമുള്ള ടേബിളോ പ്രൊസീജയറോ മാത്രമായി സ്ക്രിപിറ്റ് എടുക്കാം. (നമ്മൾ ഇവിടെ ചെയ്യുന്നത് ആദ്യത്തെ റേഡിയോ ബട്ടൺ സെലക്റ്റ് ചെയ്ത് ഡേറ്റാബേസിന്റെ മുഴുവൻ സ്ക്രിപിറ്റ് എടുക്കുകയാണ്)


സ്റ്റെപ് 4.1
Next ബട്ടൺ ഉപയോഗിച്ചോ set Scripting OPtions ടാബിൽ ക്ലിക്ക് ചെയ്തോ set Scripting OPtions എന്ന സ്റ്റെപിലേക്ക് എത്തുക. ഇവിടെ സ്ക്രിപിറ്റ് ഏത് രീതിയിലാണ് സേവ് ചെയ്യേണ്ടത് , സേവ് ചെയ്യേണ്ട ലൊക്കെഷൻ എന്നിവ പറഞ്ഞ് കൊടുക്കണം. Output Type ല് Save scripts to a specific location എന്ന റേഡീയോ ബട്ടൺ സെലക്റ്റ് ചെയ്യുന്നു. Save to file ഭാഗത്ത് നിന്ന് 
Files to generate ല്‍ നിന്ന് Single file Option എന്ന ബട്ടൺ select ചെയ്യുന്നു. ഇത് സെലക്റ്റ് ചെയ്താൽ ഡേറ്റാബേസ് സ്ക്രിപിറ്റ് മുഴുവൻ ഒരൊറ്റ .sql ഫയലായി ലഭിക്കും. Single File per object ആണ് സെലക്റ്റ് ചെയ്യുന്നതെങ്കിൽ ഓരോ ടേബിളിനും പ്രൊസീജയറിനും പ്രത്യേകം പ്രത്യേകം .sql ഫയല് ഉണ്ടാവും. Save As ഭാഗത്ത് Unicode text സെലക്റ്റ് ചെയ്യുന്നതാണ് നല്ലത്.


സ്റ്റെപ് 4.2
Advanced എന്നൊരു ടാബ് ഇവിടെ കാണാം. ഈ ടാബിൽ ക്ലിക്ക് ചെയ്താൽ Advanced Scripting Options എന്ന ഒരു വിൻഡോയിലേക്കാണ് ചെല്ലുന്നത്. ഇവിടെ നമുക്ക് പ്രധാനമായി രണ്ട് കാര്യങ്ങളാണ് ചെയ്യേണ്ടത്. 

ഒന്നാമത് Script for Server version എന്ന ഓപ്ഷൻ ഭാഗത്തു നിന്ന് നമ്മൾ സ്ക്രിപ്റ്റ് റൺ ചെയ്യിക്കാൻ/എക്സിക്യൂട്ട് ചെയ്യിച്ച് ഡേറ്റാബേസ് നിർമ്മിക്കാൻ പോകുന്നത് ഏത് വേർഷനിലേക്കാണോ അത് സെലക്റ്റ് ചെയ്യുക. (ഹയർ വേർഷനിലേക്ക് പറ്റില്ല).ഇവിടെയുള്ള ഓപഷൻ 
SQL Server 2000 , SQL Server 2005, SQL Server 2008 , SQL Server 2008 R2 എന്നിവയാണ്.

രണ്ടാമത് സ്ക്രിപ്റ്റിന്റെ ഉള്ളടക്കം നിശ്ചയിക്കുക എന്നുള്ളതാണ്. TYpes of data to script എന്ന ഓപ്ഷൻ ഭാഗത്ത് നമുക്ക് കാണാൻ പറ്റുന്നത് Data only , Schema and Data ,Schema only എന്നിങ്ങനെയുള്ള മൂന്ന് ഓപ്ഷൻ ആണ്. ഇതിൽ Data only സെലക്റ്റ് ചെയ്താൽ സ്ക്രിപ്റ്റിൽ ഡേറ്റാ മാത്രമേ ഉണ്ടാകൂ. Schema and Data ആണ് സെലക്റ്റ് ചെയ്യുന്നതെങ്കിൽ ടേബിളിന്റെ സ്ട്രക്ച്ചറും ഡേറ്റായും ഉണ്ടവും, Schema only ആണ് സെലക്റ്റ് ചെയ്യുന്നതെങ്കിൽ ടേബിളിന്റെ സ്ട്രക്ച്ചര്‍ മാത്രമേ സ്ക്രിപിറ്റിൽ കാണൂ.

സ്റ്റെപ് 5
Next ബട്ടൺ ഉപയോഗിച്ച് Summary ടാബിൽ ചെല്ലുക. വീണ്ടൂം Next ബട്ടൺ ഉപയോഗിച്ച്  Save or Publish Scripts ടാബിൽ എത്തുക. സ്ക്രിപ്റ്റ് എടുത്ത സെലക്ഷനുകളുടെ ഒരു സ്മ്മറിയാണ് Summary ടാബിൽ കാണിക്കുന്നത്. ഇവിടെ നോക്കി സെലക്ഷനിൽ എതെങ്കിലും മാറ്റം വരുത്തണമെങ്കിൽ പ്രീവിയസ് ബട്ടൺ ഉപയോഗിച്ച് പുറകോട്ട് പോയി മാറ്റി വരുത്താം.


സ്റ്റെപ് 6 
Next ബട്ടൺ ഉപയോഗിച്ചോ സൈഡ് മെനുവിൽ ക്ലിക്ക് ചെയ്തോ  Save or Publish Scripts ടാബിൽ എത്തുക. ഈ വിൻഡോയിൽ വരുമ്പോൾ തന്നെ സ്ക്രിപിറ്റ് ജനറേറ്റ് ചെയ്ത് നമ്മൾ പറഞ്ഞു കൊടൂത്ത ലൊക്കേഷനിൽ സേവ് ആകും. 


ഈ സ്റ്റെപ്പോടെ നമ്മൾ ഡേറ്റാബേസിന്റെ സ്ക്രിപ് എടൂത്തു കഴിഞ്ഞു. ഇനിയുള്ളത് ഡേറ്റാബേസിന്റെ സ്ക്രിപിറ്റ് SQL Server ല്‍ റൺ ചെയ്യിക്കുക/ഡേറ്റാബേസ് ഉണ്ടാക്കുക എന്നുള്ളതാണ്

സ്റ്റെപ് 7
SQL Server Management Studio തുറന്ന് File മെനുവിൽ നിന്ന് OPen-File ഉപയോഗിച്ച് നമ്മൾ സേവ് ചെയത് സ്ക്രിപിറ്റ് (.sql ഫയല്‍) തുറക്കുക(പുതിയ ഒരു ക്വറി വിൻഡോയിൽ ഈ ഫയൽ ഓപ്പണായി വരും). അല്ലങ്കിൽ സേവ് ചെയ്ത ലൊക്കേഷനിൽ സ്ക്രിപിറ്റ് ഫയലിൽ ഡബിൾ ക്ലിക്ക് ചെയ്യുക.


സ്റ്റെപ് 8
സ്ക്രിപിറ്റ് എക്സിക്യൂട്ട് ചെയ്യുക. സെർവറിൽ ആ പേരിൽ ഡേറ്റാബേസ് ഉണ്ടങ്കിൽ എറർ ഉണ്ടാകും.


സ്റ്റെപ് 9
ഡേറ്റാബേസിനു പുതിയ പേര് നൽകാനായി Contol+H അടിച്ച് പഴയ പേര് റിപ്ലേസ് ചെയ്യാം.


ഇതിനു ശേഷം വീണ്ടൂം എക്സിക്യൂട്ട് ചെയ്യുക. സ്ക്രിപ് ഫയൽ എക്സിക്യൂട്ടായി പുതിയ ഡേറ്റാബേസ് ഉണ്ടാകും.


സ്റ്റെപ് 10.
ഡേറ്റാബേസ് മുഴുവനായി സ്ക്രിപിറ്റ് എടുത്ത് റൺ ചെയ്യിക്കുകയായിരുന്നു നമ്മൾ ചെയതത്. നിലവിലുള്ള ഡേറ്റാബേസിലേക്ക് ടേബിളോ പ്രൊസീജിയറോ ചേർക്കാനായും സ്ക്രിപ് എടുക്കാവുന്നതാണ്. ഏത് ടേബിളിന്റെ/ പ്രൊസീജയിന്റെ സ്ക്രിപ്റ്റാണോ എടൂക്കേണ്ടത് അതിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്ത് സ്ക്രിപിറ്റ് എടൂക്കാം. (ചിത്രം നോക്കുക)


സ്റ്റെപ് 11.
ഇങ്ങനെയെടൂത്ത സ്ക്രിപിറ്റ് ഓപ്പണാക്കീ ഡേറ്റാബേസിന്റെ പേര് മാറ്റി (നമുക്കേത് ഡേറ്റാബേസിലാക്കാണോ സ്ക്രിപ്റ്റ് റൺ ചെയ്യേണ്ടത് USE എന്നതിനു ശേഷം ആ ഡേറ്റാബേസിന്റെ പേരാക്കണം. (ചിത്രത്തിൽ വട്ടമിട്ട ഭാഗം നോക്കുക)


No comments: