Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4788 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

Mit freundlichen Grüßen
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,

Mit freundlichen Grüßen
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.

Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...