SQL SERVER 2008 WERKING VAN DE SQL COMMAND LINE TOOL



Vergelijkbare documenten
SQL SERVER Werking van Database Snapshots

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica

Technische nota AbiFire Rapporten maken via ODBC

Taxis Pitane SQL beheerder. Censys BV - Eindhoven

Technische nota AbiFire5 Rapporten maken via ODBC

Installatie SQL: Server 2008R2

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn:

Katholieke Hogeschool Kempen

Logicworks CRM en Microsoft SQL Server 2005 (Express) Introductie

MA!N Rapportages en Analyses

Inhoudsopgave. Theorie Praktijk Gegevens uit Database halen DML commando s... 14

Data Warehouse Script Generator Doel

Rodin installatiehandleiding (vanaf versie 2.1.xxx.x)

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Handleiding - Aanmaken van SQL server gebruiker

Handleiding aanmaak CSR

Connectivity SQL Er kan geen verbinding worden gemaakt met de SQL server

UPDATEHANDLEIDING CODEX CLIENT

IBIS-TRAD Handleiding installatie IBIS-TRAD databases (MS-SQL)

Excel Controller. Handleiding Excel Controller Wizard

+XLVZHUN:LQGRZV$SDFKHLQVWDOODWLH

1 Labo 4 H 8 Jobs, Alerts en Operators H 9 Monitoring en Troubleshooting

DataFlex 19.0 SQL Server

Handleiding Back-up Online voor Servers Versie maart 2016

Handleiding aanmaak CSR

Installatiehandleiding Business Assistent

Optifile Server Installatie

DE ELEKTRONISCHE IDENTITEITSKAART (EID)

Installatiehandleiding Cane Webservices.nl Integratie

BIJLAGE 5: RICHTLIJNEN INSTALLATIE E.BOLA

Xiris handleiding Onderhoudsmodule & database onderhoud

LearnOSM. PostgreSQL & PostGIS. PostgreSQL en PostGIS installeren. Bijgewerkt

Handleiding installatie Rental Dynamics

Bijlage Inlezen nieuwe tarieven per verzekeraar

Installatie van sqlserver

Werkinstructie. Technisch Beheer. uitvoeren MAP scan. voor. Datum: 15 oktober Versie: 1.0

Handleiding Reinder.NET.Tasks.SQL versie 2

Handleiding Job voor gebruikers

Sparse columns in SQL server 2008

9. MYSQL. Daarin zien we het administratie paneel van mysql.

Handleiding. Installatiehandleiding Solarcentury Offertetool. Ter voorbereiding: controleer de systeemeisen

Een database gebruiken

Xampp Web Development omgeving opzetten onder Windows.

Installatiehandleiding King Webservices 2.0

Absentie Presentie Server Migratie

Installatiehandleiding Business Assistent

HANDLEIDING DMS Plugin Installatie, configuratie & werking

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Installatie MicroSoft SQL server 2012 Express

Exporteren naar excel

Informatie over de upgrade naar Windows 10 en wat u moet doen

Popsy Financials. Overstap Access-MSDE

WebUntis 2014 Instructies basisinstallatie

Handleiding installatie Visual Rental Dynamics

Handleiding CMS. Auteur: J. Bijl Coldfusion Consultant

WebUntis 2014 Instructies basisinstallatie

Outlookkoppeling installeren

Stappenplan bij het gebruik van SQL 2008 Versie 2.0,

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

DE ELEKTRONISCHE IDENTITEITSKAART (EID)

Installeren van het programma Shop Pro

Test Joomla op je PC 1

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool..

Installatie King Task Centre

Instellen en gebruiken van LDAP met Active Directory

Klankie B.V - Klankie 2010 Netwerkversie - versie sts september 2010

Easy Business Tools - Multi-user module

Configuration software van de Agility installeren op een Windows 64 bits

INHOUD. KHLim dep IWT MeRa 1/22

Beheer van databanken

Mamut Business Software

Handleiding Microsoft SQL Server configuratie

5/8 Patch management

// Mamut Business Software

Inhoud. Endnote X7 Handleiding Mediacentrum maart 2015 Page 2

Installatie stappen Microsoft SQL Server 2012 Express With Tools:

Getting Started with Python Programming

Procedure Access - MSDE

Installatie SQL Server 2012

HANDLEIDING Sms-module

Koppeling met een database

ALL-CRM Installatie handleiding

Handleiding module Berichtenconverter Wmo en Jeugdwet

Calculatie tool. Handleiding. Datum Versie applicatie 01 Versie document

Handleiding: MRJ Online Back-up versie 1.0

Handleiding module Berichtenconverter Wmo en Jeugd bètaversie

Transcriptie:

KATHOLIEKE HOGESCHOOL KEMPEN GEEL SQL SERVER 2008 WERKING VAN DE SQL COMMAND LINE TOOL JOEY LEMMENS

WOORD VOORAF WERKING VAN DE SQL COMMAND LINE TOOL is bedoeld om mensen wegwijs te maken in deze niet-grafische tool van SQL Server. We zullen hier trachten een basis te schetsen van hoe je deze krachtige tool op een zinvolle en efficiënte manier kan gebruiken. Een niet-grafische omgeving straalt vaak een bepaalde moeilijkheidsgraad uit, maar na het doornemen van deze handleiding ben je ervan bewust dat de SQL command line tool zeer nuttig kan zijn, zelfs zonder al de visuele schoonheid van bijvoorbeeld SQL Management Studio. Bij het schrijven van deze handleiding werd er gebruik gemaakt van diverse officiële websites zoals MSDN. Alle voorbeelden opgenomen in deze handleiding zijn fictief en dienen louter ter ondersteuning. Deze voorbeelden zijn makkelijk zelf uit te voeren. Het enige wat vereist is, is een werkende SQL Server 2008. 2

INHOUDSOPGAVE WOORD VOORAF... 2 INHOUDSOPGAVE... 3 INLEIDING... 4 1 Werking van de SQL Command Line Tool... 5 1.1 Wat is een Command Line Interface?... 5 1.2 Command Line Interfaces in SQL Server... 5 1.3 Starten van SQLCMD in Windows... 6 1.3.1 Connecteren met een named instance... 6 1.4 Een eerste voorbeeld in de nieuwe tool... 7 1.4.1 Query s in sqlcmd... 7 1.5 De teksteditor... 8 1.6 Scripts uitvoeren... 10 1.7 Uitvoer opslaan... 10 1.8 Scripting variabelen... 11 1.8.1 Impliciet scripting variabele aanmaken... 12 1.8.2 Expliciet scripting variabele aanmaken... 12 1.8.3 Scripts uitvoeren op meerdere databases... 13 Besluit... 16 Lijst van de figuren... 17 Literatuurlijst... 18

INLEIDING Samen met de installatie van SQL Server 2008 komt een klein maar zeer krachtige tool genaamd, SQLCMD. Deze tool kan gebruikt worden voor verschillende doeleinden. Zo is het mogelijk de SQL server te beheren m.b.v. deze tool, query s uit de database te extraheren of gewoon scripts uit te voeren die bepaalde acties gaan verrichten. Al deze functies zullen aan bod komen in deze handleiding en zullen op een vlot leesbare en duidelijke manier stap voor stap worden uitgelegd. 4

1 Werking van de SQL Command Line Tool 1.1 Wat is een Command Line Interface? Een command line interface of kortweg CLI genoemd, is een stukje software om met een besturingssysteem of bepaalde software te interageren. De interactie gebeurt door commando s in te voeren die een specifieke taak zullen uitvoeren. Nadat het commando is uitgevoerd kan de gebruiker het programma opnieuw aangespreken m.b.v. de CLI door een nieuwe opdracht in te geven. De CLI is eigenlijk de tegenhanger van de grafische gebruikersinterface. Een voorbeeld van een bekende CLI is command.exe die terug te vinden is in de Windows besturingssystemen. Volgende figuur toont het programma command.exe met het commando help. Figuur 1 - de CLI command.exe in Windows 7 1.2 Command Line Interfaces in SQL Server Ook Microsoft SQL Server heeft een eigen command line tool namelijk, SQLCMD. Deze CLI werd geïntroduceerd met SQL Server 2005 en vervangt de oudere OSQL en de ISQL tools. Deze twee laatsten worden niet meer ondersteund door SQL Server 2005 en hoger. Voor de leergierigen onder ons: ISQL gebruikte een DB-Library om te communiceren met de SQL Server. Wordt niet meer ondersteund na SQL Server 2000. OSQL gebruikte een ODBC om te communiceren met de SQL Server. Wordt niet meer ondersteund na SQL Server 2005. SQLCMD gebruikt een OLE DB om te communiceren met de SQL Server. Deze tool wordt momenteel ondersteund door SQL Server 2005 en hoger. Elke nieuwe versie van de CLI kende natuurlijk vele verbeteringen t.o.v. de vorige versies. Ook SQLCMD kent enkele voordelen zoals betere prestaties, introductie van scripting variabelen, gebruik van een teksteditor, etc. SQLCMD is compatibel met ISQL en OSQL. Dit wil zeggen dat scripts of batches gemaakt in deze twee tools gebruikt kunnen worden in SQLCMD. De SQLCMD tool wordt vooral gebruikt voor het uitvoeren van Transact-SQL statements, system procedures en script files. 5

1.3 Starten van SQLCMD in Windows Om de sqlcmd tool te starten open je een opdrachtpromptvenster. De makkelijkste manier om dit te starten in Windows 7 is door te klikken op het Startmenu en vervolgens cmd in het zoekvenster te typen. De standaardlocatie van sqlcmd.exe is terug te vinden onder C:\Program Files\Microsoft SQL Server\100\Tools\Binn. In het opdrachtpromptvenster typ je sqlcmd gevolgd door de entertoets. Vanaf nu is er een connectie met de standaard instantie van de SQL Server die op de computer actief is. Volgende figuur toont het resultaat dat je moet bekomen. Figuur 2 - starten van sqlcmd in cmd Merk op dat het connecteren automatisch verloopt omdat hij gebruik maakt van Windows Authenticatie. Wanneer je wil connecteren met SQL Server Authenticatie moet je de extra parameter U meegeven gevolgd door de gebruikersnaam. Druk vervolgens op de entertoets en geef daarna het passwoord in. Een voorbeeld: C:\Users\user>sqlcmd U admin 1> is de sqlcmd prompt. Bij elke entertoets verhoogt deze prompt met één. Om de sqlcmd sessie te beëindigen typ je exit in de CLI. 1.3.1 Connecteren met een named instance Als je niet wil connecteren met de standaard instantie van SQL Server kan je het volgende commando ingeven: 1> sqlcmd S myserver\instancename Je vervangt de myserver door de naam van de computer en instancename door de instantie van SQL Server waarmee je wil connecteren. Bij het connecteren kan je nog veel meer parameters opgeven zoals welke database je wil gebruiken, aanmelden met veilige connectie, etc. Voor de volledige lijst van alle parameters geef je in cmd.exe het volgende commando: C:\Users\user>sqlcmd /? 6

1.4 Een eerste voorbeeld in de nieuwe tool We connecteren met de standaard instantie van SQL Server op de computer. Vervolgens vragen we de top 3 van de systeemobjecten op. Om deze query uit te voeren typen we vervolgens GO. 1> select top (3) name from sys.objects 2> go Sqlcmd geeft het volgende resultaat terug: Figuur 3 - een eerste query 1.4.1 Query s in sqlcmd In principe kan je elke mogelijke query in deze tool wegschrijven. Je kan een nieuwe database aanmaken met daarin meerdere tabellen en in elke tabel nog eens waarden toevoegen. Het volgende voorbeeld illustreert dit. Figuur 4 - verschillende query's in sqlcmd 7

Uiteraard is dit niet echt de meest comfortabele manier van werken. Het wordt pas interessanter als we gaan werken met de teksteditor en zo uiteindelijk scripts kunnen inladen of informatie kunnen extraheren uit de SQL Server. Bekijk hiervoor de hoofdstukken 1.6, Scripts uitvoeren en 1.7, Uitvoer opslaan. 1.5 De teksteditor Een groot voordeel aan de sqlcmd tool is de teksteditor die makkelijk beschikbaar is. We vragen alle databases op die in SQL Server zitten door de volgende commando s in te geven. 1> select name from sys.databases 2> go Volgende figuur geeft de uitvoer van alle databases aanwezig op de SQL Server. De uitvoer kan uiteraard verschillend zijn wanneer je dit uitvoert op een andere SQL Server. Figuur 5 - lijst van databases aanwezig op SQL Server Wanneer we nu wijzigingen willen aanbrengen gebeurt dit nogal moeizaam. Daarom kunnen we ook gebruik maken van een editor zoals edit.com of notepad. Edit.com is eigenlijk de meest handige editor maar werkt enkel onder 32-bits besturingssystemen. Om de editor te openen typen we het commando :ED. Wanneer we dit uitvoeren op een 64-bits besturingssysteem krijgen we de volgende foutmelding: Figuur 6 - foutmelding openen editor 8

We gaan de editor veranderen in notepad. Om dit in te stellen verbreken we de connectie met de SQL Server door het commando exit in te geven. Vervolgens geven we het volgende commando in, in het opdrachtpromptvenster van Windows. C:\Users\user> set SQLCMDEDITOR=notepad.exe Wanneer we terug connecteren en het commando :ED ingeven opent kladblok met daarin de commando s die werden opgegeven in het sqlcmd venster. Onderstaande figuur toont het verwachte resultaat. Figuur 7 - resultaat met notepad editor In het geopende notepad bestand kunnen we heel gemakkelijk het sql statement wijzigen in bijvoorbeeld select name as [database name] from sys.databases. Je slaat het bestand op en je sluit het. Het resultaat wordt onmiddellijk overgenomen in het sqlcmd venster. 9

1.6 Scripts uitvoeren Bij het inladen van grote bestanden kan je sqlcmd gebruiken om het script te laten uitvoeren. We maken op de C-schijf een mapje sql aan met daarin het volgende sql-bestand. Figuur 8 - aanmaken database in extern sql-bestand We kunnen vanuit sqlcmd dit bestand oproepen waarna alle statements worden uitgevoerd. Het volgende commando maakt dit mogelijk: C:\Users\user>sqlcmd e i C:\sql\test.sql Bij het drukken op de entertoets verschijnt het volgende resultaat in de CLI: Figuur 9 - resultaat inladen sql-bestand We geven twee extra parameters op wanneer we de connectie maken met de SQL Server namelijk: e en i. De parameter e toont de output. Deze parameter kan je best weglaten bij het inladen van grote bestanden. De tweede parameter i is nodig voor de locatie van het in te laden sql-bestand terug te vinden. 1.7 Uitvoer opslaan Uitvoer kan je ook opslaan in tekstdocumenten op de computer. We schrijven een transact sql statement dat alle databases teruggeeft met bijhorende id, status en de naam van het mdfbestand. Deze query slaan we op in een sql-bestand dat wordt ingeladen bij het connecteren met de database. Bekijk figuren 10 t.e.m. 12 die het voorbeeld illustreren: 10

Figuur 10 - T-SQL query als invoer Figuur 11 - commando voor invoer & uitvoer Figuur 12 - resultaat uitvoer in tekstdocument In figuur 11 geven we de nieuwe parameters Y en o op. De parameter Y[waarde] zorgt voor de regelafstand. Hoe kleiner de waarde hoe kleiner de regelafstand tussen de verschillende kolommen in figuur 12, het omgekeerd geldt natuurlijk ook. De parameter o specifieert het pad waar het uitvoerdocument moet komen te staan. In dit voorbeeld is het resultaat terug te vinden onder C:\sql met als documentnaam: testoutput.txt 1.8 Scripting variabelen Variabelen die gebruikt worden in scripts worden ook wel eens scripting variabelen genoemd. Het gebruik van deze scripting variabelen is een nieuwigheid ten opzichte van osql in de vorige SQL Server edities. Door gebruik te maken van deze scripting variabelen kan een bepaald script in meerdere scenario s gebruikt worden. Een voorbeeld: als je een script wil uitvoeren op verschillende servers kan je i.p.v. elk script aan te passen, een scripting variabele voor de servernaam gebruiken. 11

1.8.1 Impliciet scripting variabele aanmaken Een scripting variabele impliciet aanmaken gebeurt bij het connecteren van de SQL server. In het volgende voorbeeld hebben we een simpel script die ons een bepaalde kolom teruggeeft uit de tabel customer. ColumnName is in dit voorbeeld de scripting variabele. Figuur 13 - script met scripting variabele Deze scripting variabele kunnen we nu opvullen wanneer we connecteren met de SQL server door de parameter v mee te geven gevolgd door de naam van de scripting variabele en de waarde. Bekijk figuur 14 waar we de waarde firstname toekennen aan de variabele ColumnName Figuur 14 - toekennen waarde aan scripting variabele in cmd 1.8.2 Expliciet scripting variabele aanmaken In een sqlcmd script kan je gebruik maken van variabelen door gebruik te maken van het commando :setvar. Je kan het later in het script terug oproepen door gebruik te maken van de $() placeholder. Sqlcmd vervangt vervolgens de placeholder door de waarde die werd toegekend aan de variabele. Bestudeer het voorbeeld in figuur 15. Figuur 15 - declareren van variabelen in sqlcmd Bovenstaand voorbeeld heeft nogal weinig nut. De bedoeling is om het server-commando interactief te gebruiken zoals wordt geïllustreerd in figuur 16. 12

Figuur 16 - interactiviteit met het setvar-commando 1.8.3 Scripts uitvoeren op meerdere databases Het volgende voorbeeld illustreert het aanmaken van een tabel in meerdere databases m.b.v. scripting variabelen. Deze tabel zal worden aangemaakt in de databases Excel en Test. De beginsituatie in onze proefopstelling ziet er als volgt uit: Figuur 17 - beginsituatie Object Explorer Het aanmaken van de tabel gebeurt in een simpel script. In dit script wordt gebruik gemaakt van twee scripting variabelen namelijk: tabel en attribuut. In figuur 18 zie je de create table instructie. 13

Figuur 18 - create table instructie In een tweede script, zie figuur 19, dat we gaan aanmaken verwijzen we naar het zonet gemaakte script en kennen we aan de scripting variabelen een waarde toe. Figuur 19 - script met scripting variabelen en verwijzing naar ander script In figuur 19 merken we toch enkele nieuwe commando s op zoals :Error, :OUT en :r. :Error <filename> is een output commando dat alle fouten die voorkomen tijdens het uitvoeren van een script wegschrijven naar een bepaald bestand. :Out <filename> is een output commando dat alle resultaten van een query wegschrijft naar een bepaald bestand. :r <filename> voegt additionele T-SQL statements en sqlcmd commando s in het statement cachegeheugen toe. Het enige wat nog moet gebeuren is het uitvoeren van het script. Voer de volgende code uit in de opdrachtprompt. 14

C:\Users\user>sqlcmd i C:\sql\multiple_DB.sql In het tekstbestand Report.txt dat automatisch werd aangemaakt bij het uitvoeren van bovenstaand commando staat nu de volgende informatie: Figuur 20 - uitvoer Report.txt Mochten er fouten zijn gevonden omdat bijvoorbeeld de database niet werd gevonden, zal je deze informatie terugvinden in het tekstbestand errors.txt. In figuur 21 zie je opnieuw de Object Explorer in SQL Server waarbij voor de databases Excel en Test een nieuwe tabel werd gecreëerd. Figuur 21 - eindsituatie Object Explorer 15

Besluit De kracht van SQLCMD zit vooral in de scripting variabelen die de scripts zeer flexibel en herbruikbaar maken. Ervaren gebruikers van deze tool kunnen eenvoudig scripts uitvoeren op verschillende databases zoals in deze handleiding werd geïllustreerd met een simpel voorbeeld. Uiteraard kunnen ook complexere taken hiermee worden uitgevoerd zoals het backuppen van databases, rapporten laten generen, kortom bijna elke mogelijk taak die je kan inbeelden. Meer informatie kan je altijd vinden op de MSDN-website van Microsoft of door de literatuurlijst te raadplegen die je verder in deze handleiding terugvindt. 16

Lijst van de figuren Figuur 1 - de CLI command.exe in Windows 7... 5 Figuur 2 - starten van sqlcmd in cmd... 6 Figuur 3 - een eerste query... 7 Figuur 4 - verschillende query's in sqlcmd... 7 Figuur 5 - lijst van databases aanwezig op SQL Server... 8 Figuur 6 - foutmelding openen editor... 8 Figuur 7 - resultaat met notepad editor... 9 Figuur 8 - aanmaken database in extern sql-bestand... 10 Figuur 9 - resultaat inladen sql-bestand... 10 Figuur 10 - T-SQL query als invoer... 11 Figuur 11 - commando voor invoer & uitvoer... 11 Figuur 12 - resultaat uitvoer in tekstdocument... 11 Figuur 13 - script met scripting variabele... 12 Figuur 14 - toekennen waarde aan scripting variabele in cmd... 12 Figuur 15 - declareren van variabelen in sqlcmd... 12 Figuur 16 - interactiviteit met het setvar-commando... 13 Figuur 17 - beginsituatie Object Explorer... 13 Figuur 18 - create table instructie... 14 Figuur 19 - script met scripting variabelen en verwijzing naar ander script... 14 Figuur 20 - uitvoer Report.txt... 15 Figuur 21 - eindsituatie Object Explorer... 15 17

Literatuurlijst Muthusamy, A. K. (2007, 01 17). MS SQL. Opgeroepen op 10 22, 2011, van Database Journal: http://www.databasejournal.com/features/mssql/article.php/3654176/sql- Server-2005-Command-Line-Tool-147SQLCMD148-150-Part-I.htm SQL Server 2008 : The sqlcmd Command-Line Utility. (2010, 10 17). Opgeroepen op 10 22, 2011, van Mscerts: http://mscerts.programming4.us/sql_server/sql%20server%202008%20%20%20the%2 0sqlcmd%20command-line%20utility.aspx Command-line interface. (2011, 10 21). Retrieved 10 21, 2011, from Wikipedia: http://en.wikipedia.org/wiki/command-line_interface Page, R., & Factor, P. (2008, 01 07). The SQLCMD workbench. Opgeroepen op 10 23, 2011, van Simple-Talk: http://www.simple-talk.com/sql/sql-tools/the-sqlcmd-workbench/ sqlcmd Utility - SQL Server 2008 R2. (sd). Opgeroepen op 10 21, 2011, van MSDN: http://msdn.microsoft.com/en-us/library/ms162773.aspx Using sqlcmd with Scripting Variables. (sd). Opgeroepen op 10 23, 2011, van MSDN: http://msdn.microsoft.com/en-us/library/ms188714.aspx Using the SQLCMD command line utility for SQL SERVER. (sd). Opgeroepen op 10 23, 2011, van SQLBook: http://www.sqlbook.com/sql-server/sqlcmd-command-lineutility-13.aspx 18