2009-08-31 12 views
0

私のプロジェクトのデータベースでは、データベースのドロップ/作成スクリプト、テーブルとSPを作成するスクリプト、エクスポートされた値を含むAccess 2003 .mdbファイルがあります。SQL Server 2008の自動データベースドロップ、作成と塗りつぶし

データベースをゼロからセットアップするには、SQL管理スタジオを使用して最初に1つのスクリプトを実行し、次にもう1つのスクリプトを使用して最後に手作業で退屈なインポートタスクを実行できます。

しかし、できるだけ自動化したいと思います。うまくいけば、フォルダに3つのファイルを入れて、実行する第4のスクリプトと一緒に置くようなものです。次のようなもの:

run script "dropcreate.sql" 
run script "createtables.sql" 
import "values.mdb" 

これはどのように行われますか?私はSSISなどの使用を避けたいと考えています。面倒なことは、もちろんデータのインポートです。私は単純な方法を見つけることができません。また、ファイルはそのまま残り、何にも埋め込まれていないことが重要です。

答えて

0

SQLCMD modeでSQL Server Management Studioを実行できます。

を次のようにそこにスクリプトを実行することができます:RC:\ TEMP \ DropCreate.SQL :RC:\ tempに\ CreateTables.SQL

代わりに、あなたはSQLCMD.exeコマンドを使用して、バッチファイルから全部を実行することができます。

SQLCMD -S "。" -E -i "c:¥temp¥DropCreate.SQL" SQLCMD -S "。" -E -i "c:¥temp¥CreateTables.SQL"

データをインポートできるSSISの代替手段がありますか?通常、任意の種類の変換や読み込みを行うには、既製の製品を使用しない限り、コード処理する必要のあるエラー処理、ルックアップなどが必要です。

あなたは、私たちは(コードを作成し、DB、負荷データを作成する)同様のプロジェクトを持っている多くのabout SSIS right here on SO

を読むことができます。 Visual Studio Team System Edition 2008とGDR2を使用して、データベースプロジェクト内ですべての作業を行います。

0
:: DOC AT THE END 

@ECHO OFF 
::BOOM BOOM BOOM CHANGE THIS ONE WHEN YOU ARE INSTALLAING DIFFERENT DATABASE 
SET DbName=CAS_DEV 


ECHO CREATE FIRST BACKUP OF ALL DATABASES ON THE DEFAULT INSTANCE ONES: 
ECHO CREATING THE LOG FILES 

echo THIS IS THE ERROR LOG OF THE UPDATE OF THE %DbName% ON %DATE% >error.log 
echo THIS IS THE INSTALL LOG OF THE UPDATE OF THE %DbName% ON %DATE% >install.log 


ECHO STARTTING BACKUP 
CD .\0.BackUp 
ECHO FOR EACH SQL FILE DO RUN IT THIS WILL TAKE A WHILE 
ECHO SINCE WE ARE GOING TO MAKE A BACKUP FOR ALL THE DATABASES ON THE CURRENT HOST 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d MASTER -t 30000 -w 80 -u -p 1 -b -i %%i -r1 1>> "..\install.log" 2>> "..\error.log" 


ECHO GO ONE FOLDER UP 

ECHO SLEEP FOR 1 SECOND 
ping -n 1 127.0.0.1 >NUL 
ECHO DONE WITH BACKUP GOING UP 
cd .. 

ECHO THE BACKUPS ARE IN THE FOLDER 
ECHO D:\DATA\BACKUPS 
ECHO CLICK A KEY TO CONTINUE 
ECHO ======================================================================================================================== 
PAUSE 




ECHO STARTING INSTALLING FUNCTIONS 
CD ".\1.Functions" 
ECHO FOR EACH SQL FILE DO RUN IT 
ping -n 1 127.0.0.1 >NUL 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i "%%i" -r1 1>> "..\install.log" 2>> "..\error.log" 

ECHO DONE WITH STORED PROCEDDURES GOING UP 
cd .. 
ping -n 1 127.0.0.1 >NUL 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 




ECHO START TO EXECUTE THE MIXED FILES 
CD .\1.Mixed 
ECHO CREATING THE LOG FILES 
echo. >>"..\error.log" 
echo. >>"..\install.log" 
ECHO FOR EACH SQL FILE DO RUN IT 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i %%i -r1 1>> "..\install.log" 2>> "..\error.log" 

ECHO GO ONE FOLDER UP 
cd .. 

ECHO SLEEP FOR 1 SECOND 
ping -n 1 127.0.0.1 >NUL 
ECHO DONE WITH MIXED GOING UP 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 
ECHO STARTING INSTALLING TABLES 
CD .\2.Tables 
ECHO FOR EACH SQL FILE DO RUN IT 
ping -n 1 127.0.0.1 >NUL 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i "%%i" -r1 1>> "..\install.log" 2>> "..\error.log" 


ping -n 1 127.0.0.1 >NUL 
ECHO DONE WITH TAbles GOING UP 
cd .. 
ping -n 1 127.0.0.1 >NUL 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 

ECHO STARTING INSTALLING Views 
CD ".\3.Views" 
ECHO FOR EACH SQL FILE DO RUN IT 
ping -n 1 127.0.0.1 >NUL 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i "%%i" -r1 1>> "..\install.log" 2>> "..\error.log" 

ECHO DONE WITH Views GOING UP 
cd .. 
ping -n 1 127.0.0.1 >NUL 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 



ECHO STARTING INSTALLING stored procedures 
CD ".\5.StoredProcedures" 
ECHO FOR EACH SQL FILE DO RUN IT 
ping -n 1 127.0.0.1 >NUL 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i "%%i" -r1 1>> "..\install.log" 2>> "..\error.log" 

ECHO DONE WITH STORED PROCEDDURES GOING UP 
cd .. 
ping -n 1 127.0.0.1 >NUL 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 

ECHO STARTING INSTALLING Triggers 
CD ".\6.Triggers" 
ECHO FOR EACH SQL FILE DO RUN IT 
ping -n 1 127.0.0.1 >NUL 

for /f %%i in ('dir *.SQL /s /b /o') DO ECHO %DATE% --- %TIME% RUNNING %%i 1>>"..\install.log"&SQLCMD -U ysg -P pass -H hostname -d %DbName% -t 3000 -w 80 -u -p 1 -b -i "%%i" -r1 1>> "..\install.log" 2>> "..\error.log" 

ping -n 1 127.0.0.1 >NUL 
ECHO DONE WITH Triggers GOING UP 
cd .. 

ping -n 1 127.0.0.1 >NUL 

ECHO HIT A KEY AFTER PAUSE 
PAUSE 


ECHO Please , Review the log files and sent them back to Advanced Application Support 


set mailadd= yordan.georgiev^@oxit.fi 

:: WE USE THE "%cd%\bin\bmail.exe".EXE UTILITY TO SEND OURSELF AN E-MAIL CONTAINING THE TEXT FILE 
:: ALTERNATIVE SMTP MIGHT BE company.com, UNCOMMENT THE NEXT LINE FOR ALTERN 
::cmd /c "%cd%\bin\bmail.exe" -s company.com -m %computername%.txt -t %mailadd% -a %computername% -h 
::"%cd%\bin\bmail.exe" -s smtp.company.com -m install.log -t [email protected] -a "POC 1.2 install log" -h 

::"%cd%\bin\bmail.exe" -s smtp.company.com -m error.log -t [email protected] -a "POC 1.2 error log" -h 





cmd /c start /max INSTALL.LOG 
CMD /C start /MAX ERROR.LOG 
echo DONE !!! 
ECHO HIT A KEY TO EXIT 
PAUSE 


:: WE GO TROUGH ALL THE FOLDERS AND RUN THE SQL FILES IN ALPHABETIC ORDER 
関連する問題