2009-08-31 6 views
0

Pour la base de données de mon projet, j'ai un script drop/create pour la base de données, un script pour créer des tables et des SP et un fichier Access 2003 .mdb avec des valeurs exportées.Base de données SQL Server 2008 drop, create et fill

Pour configurer la base de données à partir de zéro, je peux utiliser mon studio de gestion SQL pour exécuter d'abord un script, puis l'autre et enfin exécuter manuellement la sorte de tâche d'importation fastidieuse. Mais je voudrais faire cela aussi automatisé que possible. Espérons que quelque chose comme mettre les trois fichiers dans un dossier avec un quatrième script à exécuter. Vous cherchez quelque chose comme:

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

Comment cela est-il fait? J'espère éviter d'utiliser SSIS et autres. Le délicat, c'est bien sûr l'importation de données, où je n'arrive pas à trouver un moyen simple. Il est également important que les fichiers soient laissés tels qu'ils sont et ne soient pas intégrés à quoi que ce soit.

Répondre

0

Vous pouvez exécuter SQL Server Management Studio au SQLCMD mode. Là-dedans, vous pouvez exécuter des scripts comme suit

: rc: \ temp \ DropCreate.SQL : rc: \ temp \ createTables.sql

Alternativement, vous pouvez exécuter la chose à partir d'un fichier de commandes à l'aide SQLCMD.exe commandes .

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

Avez-vous une alternative à SSIS qui peut importer les données pour vous? Habituellement, pour faire n'importe quel type de transformation et de chargement, vous avez besoin d'une gestion des erreurs, de recherches, etc. que vous devrez coder vous-même, sauf si vous utilisez un produit disponible sur le marché.

Vous pouvez lire beaucoup about SSIS right here on SO

Nous avons un projet similaire (db créer, charger des données, créer un code). Nous faisons tout cela dans un projet de base de données - avec Visual Studio Team System Edition 2008 et 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 
Questions connexes