Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL 2005 Datenbank mittels Batch erstellen?!

Frage Entwicklung Batch & Shell

Mitglied: Fred666

Fred666 (Level 1) - Jetzt verbinden

22.06.2011 um 10:04 Uhr, 4919 Aufrufe, 11 Kommentare

Entwicklungsumgebung bildet ein WinXP Rechner und ein SQL Server 2005.

Hallo,

wie der Thread schon andeutet, würde ich gerne eine SQL Datenbank mithilfe einer Batchdatei erstellen. Ich habe alle Skripte dieser DB (DATABASE, TABLE, VIEWS, CONTRAINTS etc.) schon als SQL-Skripte auf D:\SQL_DB abgelgt.

Kann mir jemand helfen und sagen wie ich nun eine Batchdatei schreibe die mir eine DB erstellt mit genau den *.sql dateien??


Danke und Grüße
Fred
Mitglied: BadFsaadKl
22.06.2011 um 10:36 Uhr
Moin,

schau mal ob dir folgendes weiterhilft.

http://msdn.microsoft.com/de-de/library/ms162773.aspx

MfG
Bitte warten ..
Mitglied: Fred666
22.06.2011 um 11:58 Uhr
Hi,

ich muss hinzugügen, dass ich mit Batch-Programmierung bisher nichts zu tun hatte.
Ich habe mir folgendes mal "zusammengekratzt":

@echo off & setlocal
set SqlInstance=WINDOWS/INSTANCE1
set logfile=Log_Datei.txt
set databasename=DB_Test
set maindir=%cd%

echo %databasename%

if errorlevel 1 goto finally
echo %date% >> %logfile%
echo %time% >> %logfile%
echo build database >> %logfile%
echo build database

REM Hier sollen in einer For-Schleife alle Ordner durchgegangen werden und die darin enthaltenen .sql Dateien ausgeführt werden.
REM Der Ordner zum erstellen der Database heisst also '1 Database' der mit den Tabellen '2 Tabellen'etc.
for /D %%d in (01* 02* 03* 04* 05* 06* 07* 08* 09* ) do *hier steht der Befehl
:finally
endlocal

Ich hoff es ist verständlicher ... ich kann mir aus dem obigen Link halt nichts zusammenschreiben

Bitte helft mir!! ... Danke

Fred
Bitte warten ..
Mitglied: Logan000
22.06.2011 um 12:16 Uhr
Moin Moin

Ich hoff es ist verständlicher ... ich kann mir aus dem obigen Link halt nichts zusammenschreiben face-sad
Wieso nicht? für dein
*hier steht der Befehl
ersetzt du durch
01.
sqlcmd -u [SQLuser] -p [Passwort] -i [PfadVomSQLSkript]
und dann sollte es das eigentlich sein.

Gruß L.
Bitte warten ..
Mitglied: Fred666
22.06.2011 um 13:18 Uhr
Hi...

also ich seh halt Probleme darin, da ich nicht weiss wie mein User heisst, ich kein Passwort kenne, mit welchem ich ich als einloggen muss und ich ja will, dass die For-Schleife mir alle *.sql Datein aufruft, die in einem Ordner stehen!!!
Also beispielsweise für den Ordner '01 Database' wird beim ersten durchlauf nur eine SQL-Datei ausgeführt, nämlich die zum erstellen der SQL-DB. Im Ordner '02 Tables' sind 15 SQL-Dateien enthalten! Ich möchte ja nicht jeden einzelnen aufruf machen sondern eben mitHilfe der FOR-Schleife beim 2ten Durchlauf alle diese 15 Dateien aufrufen.

Dafür muss ich doch aber -i [PfadVomSQLSkript] variabel halten oder nicht?!

Edit: Muss ich auch nicht noch erst die Instanz mit angeben wo es eingefügt werden soll??

Gruß Fred!
Bitte warten ..
Mitglied: BadFsaadKl
22.06.2011 um 13:35 Uhr
Moin,

den User und das Passwort, vergibst du bei der Installation.
Insovfern du nicht seperate User angelegt hast.

"Standarduser" bei der installation ist "sa".
Passwort, welches halt vergeben ist.

Solange du das nicht weist, brauchst du dir über den Rest keine Gedanken machen.
Weil irgendwie musst du dich ja, selbst via Script, am SQL-Server anmelden.

Zumindest ist mir nix anderweitiges bekannt, wie man Scripte ohne Anmeldung ausführen kann,

MfG
Bitte warten ..
Mitglied: Logan000
22.06.2011 um 13:35 Uhr
Moin
Zitat von Fred666:
Dafür muss ich doch aber -i [PfadVomSQLSkript] variabel halten oder nicht?!
Genau. Den Pfad Frickels du dir, natürlich in abhängigkeit deiner Schleife, zusammen.
Frag mich aber nicht wie. Ich bin miserabel in Batch und habe dies % Geschleuder nie verstanden.

also ich seh halt Probleme darin, da ich nicht weiss wie mein User heisst, ich kein Passwort kenne, mit welchem ich ich als einloggen muss
Darin sehe ich allerdings auch ein Problem. Du meldest dich immer mit einem Benutzer auf dem SQL Server an.
Welchen nimmst du denn wenn du das Management Studio startest?
Dabei kennt der SQL Server 2 Autentifizierungs Methoden:
1. SQL Server Authentifizierung.
Du richtest auf den SQL Server selbst die Benutzer ein und gewährst ihnen Zugriff auf z.B. einzelne Datenbanken.
Hier gibts einen Admin der heißt: sa.
2. Windows-Autentifizierung
Hier werden nur Windows Benutzer durchgereicht. Administratoren sind Vordefiniert enthalten.

Hoffe das hilft weiter.

Gruß L.
Bitte warten ..
Mitglied: Fred666
22.06.2011 um 14:11 Uhr
Also das ganze geht über SQL Server und Windows-Authentifizierungs Modus. Ich öffne das Management Studios und muss mich nur Connecten (also die voreingestellte Verbindung aufbauen. Danach kann ich eig alles machen mit der DB was ich mag! :P

Mein WinAccount an dem ich arbeite nennt sich 'Host'.

Ich hab jetzt mal mittels 'select current_user as aktUser in einer Querry Ermittelt wie mein User heißt: dbo

So ... danach will ich einfach mal nur eine sql Datei aufrufen mit:

@echo off
set srv=WINXPSP2\XXXX
set sqlusr=dbo
rem set sqlpwd= xxx???

sqlcmd -U %sqlusr%-S %srv% -i Create_DATABASE_ALOAH.sql

echo bla
pause

Die Sache ist die, dass ich jetzt die Meldung bekomme ich müsste Passwort eingeben!!

Also 'Password:' im cmd
Bitte warten ..
Mitglied: Fred666
22.06.2011 um 14:32 Uhr
Also es hat geklappt indem ich -U und _P weggelassen habe und geschrieben habe:
01.
@echo off 
02.
set srv=WINXPSP2\INSTANCE1 
03.
sqlcmd -S %srv% -i Create_DATABASE_ALOAH.sql 
Wäre supper wenn mir noch jemand helfen könnte dies nun wie oben beschrieben in einer For-Schleife zu packen!!

Grüße und Danke
Fred!
Bitte warten ..
Mitglied: BadFsaadKl
22.06.2011 um 14:33 Uhr
Würde dir vorschlagen, wenn du dich auf der Management Console anmeldest,
lege dir doch nen neuen User an.

von dem weist du ja dann Username/Password.

MfG
Bitte warten ..
Mitglied: Fred666
22.06.2011 um 16:11 Uhr
Soo... also ich hab mal was zusammengeschrieben aber ich komm nicht mehr weiter:

<code>
set srv=WINXPSP2\Instanz1
set maindir=%cd%
for /D %%d in (01* 02* 03* 04* 05* 06* 07* 08* 09* ) do echo building 01* ... & cd 01* & call ..\..\ExecuteSqlBatches %srv% master & cd %maindir
<code/>

aber da ist noch ein bug!!!

HILFEEEE
Bitte warten ..
Mitglied: Fred666
27.06.2011 um 11:15 Uhr
Hallo zusammen...

nachdem ich nun das Wochenende "gebüffelt" habe habe ich eine Lösung gefunden die allerdings noch nicht 100%ig geht!!

01.
@echo off & setlocal 
02.
set srv=SERVER\INSTANZ1 
03.
set maindir=%cd%\ 
04.
 
05.
FOR /D %%d in (01* 02* 03* 04* 05* 06* 07* 08* 09* ) do ( 
06.
 
07.
	echo %maindir%%%d 
08.
	set stringneu=%maindir%%%d 
09.
                  FOR /R %stringneu% %%f in (*.sql) do SQLCMD -S %srv% -i %%f 
10.
11.
PAUSE 
12.
endlocal
Die erste Forschleife schaut im Pfad in der die Batchdatei liegt nach Ordnern die mit der in der Klammer enthaltenen Zahlen beginnen.
Die zweite Forschleife führt alle in dem Ordner enthaltenen SQL-Dateien aus!!!
Beim Ausführen bekomme ich einen Fehler und zwar vermute ich, dass das bei der Zuweisung " set stringneu=%maindir%%%d" erfolgt!!!
Ich möchte da im Prinzip den festen Pfad mit einer Laufvariable verknüpfen!!

Beide Schleifen funktionieren für sich schon nur beim zusammenfügen klappts nicht ganz!!

Kann mir da jemand helfen und sagen wie ich die Variable %stringNeu% so gestalte, dass es den festen Pfad %cd% endhält und eben die von der ForSchleife erstellten Variable???

Grüße Fred

[Edit Biber] Codetags korrigiert. [/Edit]
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Server - Offline Datenbank einbinden (4)

Frage von Dhalben zum Thema Datenbanken ...

Batch & Shell
gelöst Powershell - Zugriff auf Datenbank - Ausführen eines SQL Scripts

Frage von internet2107 zum Thema Batch & Shell ...

Datenbanken
Automatisierter täglicher Import einer Access Datenbank in SQL (5)

Frage von RichterS zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(8)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(27)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (18)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...