[SQL] Database aanmaken dmv bat file

Pagina: 1
Acties:

  • intuliegend
  • Registratie: Augustus 2002
  • Laatst online: 15-04-2024

intuliegend

Wist ik wel....

Topicstarter
Ik moet regelmatig databases aanmaken om even bij een klant installatie te kijken, die daarna dus ook weer weggegooid wordt. Daar gebruik ik nu een bat filetje voor, aangezien de management studio te traag opstart. (( sql server 2008 ))

Zoiets dus:

@echo off
cd\
cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
sqlcmd -S .\sqlexpress -U sa -P pw -Q "create database MultiServ"
cd\
Exit

Deze is van een collega die sqlexpress gebruik maar komt op hetzelfde neer. Nu moet ik dus wel elke keer het bat filetje aanpassen en de juiste database naam invullen. Is er een manier om het bat filetje naar de database naam te laten vragen?

Ik heb al zitten googlen en de got search gebruikt maar kom er nog niet aan uit..

specs: AMD 8 core+Cryorig Ultimate @ 5,2Ghz - 16GB - 2x R9 290 met wc - HyperX Fury SSD - 2x1TB Raid1


  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

bat file aanroepen met database naam?

en dan met %1 in de batchfile aan je database naam refereren.

If you choose to criticise you choose your enemies


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 14-09 11:11

glashio

C64 > AMIGA > PC

http://www.computerhope.com/batch.htm

Goeie tutorial over "ouderwets" batch scripting :)

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


  • intuliegend
  • Registratie: Augustus 2002
  • Laatst online: 15-04-2024

intuliegend

Wist ik wel....

Topicstarter
Snap niet helemaal hoe ik dat %1 commando moet gebruiken, in de tutorial staat dat je een 1 line bat file kunt maken met alleen echo hello %1 erin, en dat zou je dan als vraag terug moeten krijgen, maar dat werkt niet.

En als je dit al in kan geven hoe zet ik dit dan in het sql commando? Commando wat ik nu gebruik is simpeler:

sqlcmd -S notebookjb -E -Q "create database test"

En hier moet ik dus het woordje test aan kunnen passen dmv een input. Maar hoe zet ik mijn input dan op die plek, elke tekst die ik er nu neer zet wordt natuurlijk gewoon de naam van de database.

Ben geen programmeur dus misschien vraag ik wel iets heel doms maar kom er zo ff niet uit..

specs: AMD 8 core+Cryorig Ultimate @ 5,2Ghz - 16GB - 2x R9 290 met wc - HyperX Fury SSD - 2x1TB Raid1


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:56
intuliegend schreef op donderdag 19 november 2009 @ 15:19:
Snap niet helemaal hoe ik dat %1 commando moet gebruiken, in de tutorial staat dat je een 1 line bat file kunt maken met alleen echo hello %1 erin, en dat zou je dan als vraag terug moeten krijgen, maar dat werkt niet.
Nee, je krijgt dan geen 'vraag' ofzo; je moet gewoon hetgeen je in %1 ingevuld wil zien, meegeven als argument op de command-line

Bv:
mybat.bat :
code:
1
2
3
@echo off
echo hello %1
pause


En dan op de commandline:
code:
1
c:\>mybat melp

Zal resulteren in:
code:
1
hello melp

Vervang dus in jouw batch file de DB-naam door %1, en roep dan je batchscript aan waarbij je de DB-naam die je wenst te gebruiken, als command-line arg meegeeft:
code:
1
createdb eendatabasename

https://fgheysels.github.io/


  • intuliegend
  • Registratie: Augustus 2002
  • Laatst online: 15-04-2024

intuliegend

Wist ik wel....

Topicstarter
Aha op die fiets, dan heb ik het verkeerd begrepen. Tnx voor de duidelijke uitleg _/-\o_ Dat betekend dus dat ik alsnog het bat filetje aan moet passen of het via een run command handmatig in moet voeren. Enig verschil is dus dat ik ipv het hele sql create commando, nu alleen de naam van de bat file en de parameter in hoef te tikken.

Dus ipv sqlcmd -S notebookjb -E -Q "create database test", tik ik nu C:\test.bat dbnaam. Is dus nog niet echt wat ik bedoel maar meer zal er met een bat filetje dan niet mogelijk zijn, moet ik misschien eerder de vb kant op gaan kijken.

Naja merci iig voor de hulp zover!

specs: AMD 8 core+Cryorig Ultimate @ 5,2Ghz - 16GB - 2x R9 290 met wc - HyperX Fury SSD - 2x1TB Raid1


  • bgrr
  • Registratie: Oktober 2001
  • Niet online
intuliegend schreef op donderdag 19 november 2009 @ 14:44:
Ik moet regelmatig databases aanmaken om even bij een klant installatie te kijken, die daarna dus ook weer weggegooid wordt. Daar gebruik ik nu een bat filetje voor, aangezien de management studio te traag opstart. (( sql server 2008 ))

Zoiets dus:

@echo off
cd\
cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
sqlcmd -S .\sqlexpress -U sa -P pw -Q "create database MultiServ"
cd\
Exit

Deze is van een collega die sqlexpress gebruik maar komt op hetzelfde neer. Nu moet ik dus wel elke keer het bat filetje aanpassen en de juiste database naam invullen. Is er een manier om het bat filetje naar de database naam te laten vragen?

Ik heb al zitten googlen en de got search gebruikt maar kom er nog niet aan uit..
op onderstaande manier wordt gevraagd om een dbnaam en dit kun je als variable weer gebruiken verderop in het dos script...

@echo type dbnaam now...
@set /p dbnaam=
cd\
cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
sqlcmd -S .\sqlexpress -U sa -P pw -Q "create database %dbnaam%"
cd\
Exit

[ Voor 5% gewijzigd door bgrr op 19-11-2009 16:04 ]


  • intuliegend
  • Registratie: Augustus 2002
  • Laatst online: 15-04-2024

intuliegend

Wist ik wel....

Topicstarter
Woho, precies wat ik bedoelde :) Tnx! Ga er nog even een dir commando tussen frotten voor het drop commando zodat ik eerst een lijstje krijg van de db's en er vervolgens 1 kan verwijderen.

_/-\o_ _/-\o_ _/-\o_

specs: AMD 8 core+Cryorig Ultimate @ 5,2Ghz - 16GB - 2x R9 290 met wc - HyperX Fury SSD - 2x1TB Raid1

Pagina: 1