Microsoft Servers SQL-databasebeheersysteem. Maak verbinding met de server. Handige samenwerkingsomgeving

Mijn bedrijf heeft zojuist het jaarlijkse beoordelingsproces doorlopen en ik heb ze er uiteindelijk van overtuigd dat het tijd was om iets te vinden De beste beslissing om ons SQL-schema/scènes te beheren. Momenteel hebben we slechts een paar scripts voor handmatige updates.

Ik heb bij een ander bedrijf met VS2008 Database Edition gewerkt en het is een geweldig product. Mijn baas vroeg me om SQL Compare van Redgate te bekijken en te zoeken naar andere producten die mogelijk beter zouden zijn. SQL-vergelijking is ook een geweldig product. Ze lijken Perforce echter niet te ondersteunen.

Heb je hiervoor verschillende producten gebruikt?

Voor welke hulpmiddelen gebruik je SQL-beheer?

Wat moet er in de eisen staan ​​voordat mijn bedrijf een aankoop doet?

10 antwoorden

Ik denk niet dat er een tool bestaat die alle onderdelen aankan. Met VS Database Edition kunt u geen fatsoenlijk releasemechanisme creëren. Het uitvoeren van individuele scripts vanuit de Solution Browser schaalt niet goed genoeg in grote projecten.

Minimaal wat je nodig hebt

  • IDE/editor
  • opslagplaats broncode die kan worden gestart vanaf uw IDE
  • naamgevingsconventie en organisatie van verschillende scripts in mappen
  • het proces van het afhandelen van wijzigingen, het beheren van releases en het uitvoeren van implementaties.

De laatste kogel is waar dingen meestal kapot gaan. Daarom. Voor een betere beheerbaarheid en het bijhouden van versies wilt u elk db-object in een eigen scriptbestand opslaan. Dat wil zeggen dat elke tabel, opgeslagen procedure, weergave, index, enz. heeft een eigen bestand.

Wanneer er iets verandert, update je het bestand en heb je een nieuwe versie in je repository Nodige informatie. Als het gaat om het samenvoegen van meerdere wijzigingen in een release, verwerking aparte bestanden kan lastig zijn.

2 opties die ik heb gebruikt:

    Naast het opslaan van alle individuele databaseobjecten in hun eigen bestanden, zijn er releasescripts, die een aaneenschakeling zijn van individuele scripts. Het nadeel hiervan: je hebt code op 2 plekken met alle risico's en nadelen van dien. Potentieel: Het uitvoeren van een release is net zo eenvoudig als het uitvoeren van een enkel script.

    schrijf een kleine tool die scriptmetagegevens uit het releasemanifest kan lezen en het elk script kan uitvoeren dat in het manifest is gespecificeerd op de doelserver. Er zit geen nadeel aan, behalve dat je code moet schrijven. Deze aanpak werkt niet voor tabellen die niet kunnen worden verwijderd en opnieuw gemaakt (zodra u live bent en over de gegevens beschikt), dus u beschikt over wijzigingsscripts voor de tabellen. Het zal dus feitelijk een combinatie van beide benaderingen zijn.

Ik zit in het ‘script-it-yourself’-kamp omdat producten van derden brengt u alleen zover als u de databasecode beheert. Ik heb niet één script voor elk object, omdat objecten in de loop van de tijd veranderen, en negen van de tien keer zou het alleen maar bijwerken van mijn "creation table"-script om drie nieuwe kolommen te hebben niet voldoende zijn.

Het maken van databases is grotendeels triviaal. Zet een aantal CREATE-scripts op, orden ze op de juiste manier (maak een database vóór schema's, schema's vóór tabellen, tabellen vóór procedures, roep procedures aan vóór oproepen, enz.) en doe het. Het beheren van databasewijzigingen is niet zo eenvoudig:

  • Als u een kolom aan een tabel toevoegt, kunt u de tabel niet zomaar verwijderen en deze met een nieuwe kolom maken, omdat hierdoor al uw waardevolle productiegegevens verloren gaan.
  • Als Fred een kolom aan tabel XYZ toevoegt en Mary nog een kolom aan tabel XYZ, welke kolom wordt dan als eerste toegevoegd? Ja, de volgorde van de kolommen in de tabellen doet er niet toe [omdat je nooit SELECT * gebruikt, toch?], tenzij je probeert de database te beheren en versiebeheer bij te houden. Op dat moment heb je twee "echte" databases die lijken niet op elkaar, worden een echte hoofdpijn. We gebruiken SQL-vergelijking niet om te beheren, maar om dingen te beoordelen en bij te houden, vooral tijdens de ontwikkeling, en de paar "ze zijn anders (maar het is niet magger)"-situaties die we kunnen voorkomen, kunnen ons ervan weerhouden verschillen op te merken die er toe doen.
  • Op dezelfde manier kan het erg complex worden als meerdere projecten (ontwikkelaars) tegelijkertijd en afzonderlijk aan een gemeenschappelijke database werken. Misschien werkt iedereen aan het Next Big Thing-project, terwijl plotseling iemand moet gaan werken aan bugfixes voor het Last Big Thing-project. Hoe beheert u de vereiste codewijzigingen als de releasevolgorde variabel en flexibel is? (Leuke tijden inderdaad.)
  • Het veranderen van tabelstructuren betekent het veranderen van gegevens, en dit kan ontzettend ingewikkeld worden als je te maken hebt met achterwaartse compatibiliteit. Je voegt een kolom "DeltaFactor" toe, oké, dus wat doe je om deze esoterische waarde in te vullen voor al je bestaande (lees: oude) gegevens? U voegt een nieuwe opzoektabel en bijbehorende kolom toe, maar hoe vult u deze in? bestaande rijen? Deze situaties komen misschien niet vaak voor, maar als ze wel voorkomen, moet je het zelf doen. Tools van derden kunnen eenvoudigweg niet anticiperen op de behoeften van uw bedrijfslogica.

In wezen heb ik een CREATE-script voor elke database, gevolgd door een reeks ALTER-scripts naarmate onze codebasis in de loop van de tijd verandert. Bij elk script wordt gecontroleerd of het kan worden uitgevoerd: dit is de juiste "soort" database, de benodigde pre-scripts zijn uitgevoerd, dit script draait al. Pas als de controles zijn geslaagd, voert het script de wijzigingen uit.

Als hulpmiddel gebruiken we SourceGear Fortress voor het onderliggende broncodebeheer, Redgate SQL Compare voor algemene ondersteuning en probleemoplossing, en een aantal op SQLCMD gebaseerde thuisscripts om scripts in bulk te implementeren met wijzigingen in meerdere servers en databases en bij te houden wie zich heeft aangemeld. welke databasescripts op welk tijdstip. Het eindresultaat: al onze databases zijn stabiel en stabiel, en we kunnen eenvoudig bewijzen welke versie op een bepaald moment is of was.

We vereisen dat alle databasewijzigingen of invoegingen in bijvoorbeeld opzoektabellen in een script worden uitgevoerd en in broncodebeheer worden opgeslagen. Ze worden vervolgens op dezelfde manier ingezet als elke andere code om een ​​versie van de software te implementeren. Omdat onze ontwikkelaars geen implementatierechten hebben, hebben ze geen andere keuze dan scripts te maken.

Ik gebruik meestal MS Server Managementstudio voor het beheren van SQL, het werken met gegevens, het ontwikkelen van databases en het debuggen ervan. Als ik bepaalde gegevens naar het SQL-script moet exporteren of als ik een complex object in de database moet maken, gebruik ik EMS SQL Management Studio voor SQL Server omdat ik daar meer kan zien duidelijk welke smalle delen van mijn code en visueel ontwerp in deze omgeving mij gemakkelijker maken

Ik heb een open source-project (gelicenseerd onder LGPL) dat problemen probeert op te lossen met betrekking tot de juiste DB-schemaversie voor (en verder) SQL Server (2005/2008/Azure), bsn ModuleStore. Het hele proces komt heel dicht in de buurt van het concept dat wordt uitgelegd in de post van Phillip Kelly hier.

Kortom, een apart deel van de toolkit scriptt de databaseobjecten SQL-gegevens Server DB-schema's in bestanden met standaardopmaak, zodat de inhoud van het bestand alleen wordt gewijzigd als het object daadwerkelijk is gewijzigd (in tegenstelling tot scripting gedaan door VS, dat ook scripts enz. maakt, waarbij alle gewijzigde objecten worden gemarkeerd, zelfs als ze vrijwel identiek zijn).

Maar de toolkit gaat verder dan dit als u .NET gebruikt: u kunt hiermee SQL-scripts insluiten in een bibliotheek of toepassing (als inline bronnen) en vervolgens de vergeleken inline scripts vergelijken met de huidige status in de database. Niet-tabelwijzigingen (die geen "destructieve wijzigingen" zijn zoals gedefinieerd door Martin Fowler) kunnen automatisch of op aanvraag worden toegepast (bijvoorbeeld het maken en verwijderen van objecten zoals views, functies, opgeslagen procedures, typen, indexen) en wijzigingsscripts (die handmatig moeten worden opgeschreven) kunnen in hetzelfde proces worden toegepast; Er worden ook nieuwe tabellen gemaakt, evenals hun instellingsgegevens. Na de update wordt het databaseschema opnieuw vergeleken met de scripts om er zeker van te zijn dat de database-update succesvol is voordat er wijzigingen worden aangebracht.

Houd er rekening mee dat alle script- en vergelijkingscodes zonder SMO worden uitgevoerd, zodat u geen pijnlijke SMO-afhankelijkheid heeft wanneer u de bsn ModuleStore-module in applicaties gebruikt.

Afhankelijk van hoe je toegang wilt krijgen tot de database, biedt de toolkit nog meer: ​​het implementeert enkele ORM-mogelijkheden en biedt een zeer mooie en nuttige front-end-aanpak voor het aanroepen van opgeslagen procedures, inclusief transparante XML-ondersteuning met native .NET XML-klassen, en ook voor TVP (tabelwaardeparameters) als IEnumerable

Hier is mijn script om opgeslagen proc en udf en triggers in een tabel bij te houden.

    Maak een tabel om de bestaande proc-broncode op te slaan

    Voer een tabel in met alle bestaande trigger- en scriptgegevens

    Maak een DDL-trigger om wijzigingen daarin bij te houden

    /*****Object: Tabel . Scriptdatum: 17-09-2014 11:36:54 AM ******/ SET ANSI_NULLS OP GO SET QUOTED_IDENTIFIER OP GO CREATE TABLE . ( IDENTITY(1, 1) NOT NULL , (1000) NULL , (1000) NULL , (1000) NULL , (1000) NULL , NULL , NTEXT NULL ,BEPERKING PRIMARY SLEUTEL GECLUSTERD (ASC) MET (PAD_INDEX = OFF ,STATISTICS_NORECOMPUTE = UIT ,IGNORE_DUP_KEY = UIT ,ALLOW_ROW_LOCKS = AAN ,ALLOW_PAGE_LOCKS = AAN) AAN ) AAN GA ALTER TABEL . CONSTRAINT DEFAULT("") TOEVOEGEN VOOR GO INSERT INTO . ( , , , , ,) SELECT "sa" ,"loginitialdata" ,r.ROUTINE_NAME ,r.ROUTINE_TYPE ,GETDATE() ,r.ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES r UNION SELECT "sa" ,"loginitialdata" ,v.TABLE_NAME , "view" ,GETDATE() ,v.VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS v UNION SELECT "sa" ,"loginitialdata" ,o.NAME , "trigger" ,GETDATE() ,m.DEFINITION FROM sys.objects o JOIN sys. sql_modules m ON o.object_id = m.object_id WHERE o.type = "TR" GA TRIGGER AANMAKEN IN DATABASE VOOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE, CREATE_INDEX, ALTER_INDEX, DROP_INDEX, CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER, AL TER_TABLE ,ALTER_VIEW ,CREATE_VIEW ,DROP_VIEW ZOALS BEGIN SET NOCOUNT BIJ DECLARE @data XML SET @data = Eventdata() INSERT INTO sysupdatelog VALUES (@data.value("(/EVENT_INSTANCE/LoginName)", "nvarchar(255)") ,@data.value("( /EVENT_INSTANCE /EventType)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectName)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectType)" , " nvarchar(255)") ,getdate() ,@data.value("(/EVENT_INSTANCE/TSQLCommand/CommandText)", "nvarchar(max)")) SET NOCOUNT OFF END GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO TRIGGER INSCHAKELEN OP DATABASE GO

01/05/15 28.1K

Soms wil je echt je gedachten op een rij zetten, ze op een rijtje zetten. En nog beter, in alfabetische en thematische volgorde, zodat er eindelijk helderheid van denken ontstaat. Stel je nu voor wat voor chaos er zou gebeuren in " elektronische hersenen» elke computer zonder duidelijke structurering van alle gegevens en Microsoft SQL Server:

MS SQL-server

De software is een relationeel databasebeheersysteem (DBMS) ontwikkeld door Microsoft Corporation. Voor het manipuleren van data wordt een speciaal ontwikkelde Transact-SQL-taal gebruikt. Taalopdrachten voor het selecteren en wijzigen van een database zijn opgebouwd op basis van gestructureerde queries:


Relationele databases zijn gebouwd op de onderlinge verbinding van alle structurele elementen, ook vanwege hun nesting. Relationele databases hebben ingebouwde ondersteuning voor de meest voorkomende gegevenstypen. Hierdoor integreert SQL Server ondersteuning voor het programmatisch structureren van gegevens met behulp van triggers en opgeslagen procedures.

Overzicht van MS SQL Server-functies


Het DBMS maakt deel uit van een lange reeks gespecialiseerde software die Microsoft voor ontwikkelaars heeft gemaakt. Dit betekent dat alle schakels van deze keten (applicaties) diep met elkaar geïntegreerd zijn.

Dat wil zeggen dat hun tools gemakkelijk met elkaar communiceren, wat het proces van het ontwikkelen en schrijven van programmacode aanzienlijk vereenvoudigt. Een voorbeeld van een dergelijke relatie is de programmeeromgeving MS Visual Studio. Het installatiepakket bevat al SQL Server Express Edition.

Uiteraard is dit niet het enige populaire DBMS op de wereldmarkt. Maar juist dit is acceptabeler voor computers met Windows, vanwege de focus op dit besturingssysteem. En niet alleen daarom.

Voordelen van MS SQL Server:

  • Heeft een hoge mate van prestatie en fouttolerantie;
  • Het is een DBMS voor meerdere gebruikers en werkt volgens het client-server-principe;

    Het clientgedeelte van het systeem ondersteunt het maken van gebruikersverzoeken en het verzenden ervan naar de server voor verwerking.

  • Nauwe integratie met het Windows-besturingssysteem;
  • Ondersteuning voor externe verbindingen;
  • Ondersteuning voor populaire gegevenstypen, evenals de mogelijkheid om triggers en opgeslagen procedures te creëren;
  • Ingebouwde ondersteuning voor gebruikersrollen;
  • Geavanceerde functie Reserveer exemplaar databanken;
  • Hoge mate van beveiliging;
  • Elk nummer bevat verschillende gespecialiseerde edities.

Evolutie van SQL Server

De kenmerken van dit populaire DBMS zijn het gemakkelijkst te zien als we de geschiedenis van de evolutie van al zijn versies in ogenschouw nemen. We zullen alleen dieper ingaan op die releases waarin de ontwikkelaars belangrijke en fundamentele wijzigingen hebben aangebracht:

  • Microsoft SQL Server 1.0 – uitgebracht in 1990. Zelfs toen merkten experts op hoge snelheid gegevensverwerking, zelfs bij maximale belasting in multi-user-modus gedemonstreerd;
  • SQL Server 6.0 - uitgebracht in 1995. Deze versie was de eerste ter wereld die ondersteuning voor cursors en gegevensreplicatie implementeerde;
  • SQL Server 2000 - in deze versie ontving de server volledig nieuwe motor. De meeste wijzigingen hadden alleen betrekking op de gebruikerskant van de applicatie;
  • SQL Server 2005 – de schaalbaarheid van het DBMS is toegenomen en het beheer- en administratieproces is op veel manieren vereenvoudigd. Werd geïmplementeerd nieuwe API ter ondersteuning van het .NET-softwareplatform;
  • Latere releases waren gericht op het ontwikkelen van de interactie van het DBMS op niveau cloud-technologieën en bedrijfsanalysetools.

De basissysteemkit bevat verschillende hulpprogramma's voor het configureren van SQL Server. Deze omvatten:


Configuratiemanager. Hiermee kunt u alles beheren netwerkinstellingen en databaseserverdiensten. Wordt gebruikt om SQL Server binnen een netwerk te configureren.
  • SQL Server-fout- en gebruiksrapportage:


Het hulpprogramma wordt gebruikt om het verzenden van foutrapporten naar Microsoft-ondersteuning te configureren.


Wordt gebruikt om de werking van de databaseserver te optimaliseren. Dat wil zeggen dat u de werking van SQL Server kunt aanpassen aan uw behoeften door bepaalde functies en componenten van het DBMS in of uit te schakelen.

De set hulpprogramma's in Microsoft SQL Server kan variëren, afhankelijk van de versie en editie van het softwarepakket. In de 2008-versie zul je het bijvoorbeeld niet vinden Configuratie van SQL Server-oppervlaktegebied.

Microsoft SQL Server starten

In dit voorbeeld wordt de versie uit 2005 van de databaseserver gebruikt. De server kan op verschillende manieren worden gestart:

  • Via het hulpprogramma SQL Server-configuratiebeheer. Selecteer in het toepassingsvenster aan de linkerkant "SQL Server 2005 Services" en aan de rechterkant - de databaseserverinstantie die we nodig hebben. We markeren het en selecteren " Start" in het submenu van de rechtermuisknop.

  • Gebruik maken van de omgeving SQL Server Management Studio Express. Het is niet opgenomen in het installatiepakket van de Express-editie. Daarom moet het afzonderlijk worden gedownload van de officiële Microsoft-website.

Start de applicatie om de databaseserver te starten. In het dialoogvenster " Verbinding met de server"Selecteer in het veld "Servernaam" de instantie die we nodig hebben. In veld " Authenticatie"laat de waarde staan" Windows-verificatie" En klik op de knop “Verbinden”:

Basisbeginselen van SQL Server-beheer

Voordat u MS SQL Server start, moet u zich kort vertrouwd maken met de basismogelijkheden van de configuratie en het beheer ervan. Laten we beginnen met een gedetailleerder overzicht van verschillende hulpprogramma's die in het DBMS zijn opgenomen:

  • Configuratie van SQL Server-oppervlaktegebied– hier moet u heen als u een functie van de databaseserver wilt in- of uitschakelen. Onderaan het venster staan ​​twee items: de eerste is verantwoordelijk voor netwerkparameters en in de tweede kunt u een service of functie activeren die standaard is uitgeschakeld. Schakel bijvoorbeeld integratie met het .NET-platform in via T-SQL-query's:

SQL Server Management Studio heeft twee primaire toepassingen: het beheren van databaseservers en het beheren van databaseobjecten. Deze functies worden hieronder besproken.

Beheer van databaseservers

Beheertaken die u kunt uitvoeren met SQL Server Management Studio omvatten, maar zijn niet beperkt tot:

    serverregistratie;

    verbinding met de server;

    nieuwe servergroepen aanmaken;

    het beheren van meerdere servers;

    starten en stoppen van servers.

Deze beheertaken worden in de volgende paragrafen beschreven.

Serverregistratie

SQL Server Management Studio scheidt de activiteit van het registreren van servers van de activiteit van het verkennen van databases en hun objecten. (Beide soorten acties kunnen worden uitgevoerd via de Objectverkenner.) Voordat u de databases en objecten van een server, lokaal of extern, kunt gebruiken, moet deze worden geregistreerd.

U kunt de server registreren wanneer u SQL Server Management Studio voor het eerst start, of later. Om de databaseserver te registreren, klikt u op klik met de rechtermuisknop gewenste server in Object Explorer en selecteer Registreren in het contextmenu. Als het deelvenster Objectverkenner verborgen is, kunt u het openen door de menuopdracht Beeld --> Objectverkenner uit te voeren. Het dialoogvenster Nieuwe serverregistratie wordt geopend, zoals weergegeven in de onderstaande afbeelding:

Selecteer de naam van de server die u wilt registreren en het verificatietype voor die server (dat wil zeggen Windows-verificatie of SQL Server-verificatie) en klik vervolgens op Opslaan.

Verbinding maken met de server

SQL Server Management Studio scheidt ook de taken van het registreren van een server en het verbinden met een server. Dit betekent dat wanneer een server wordt geregistreerd, die server niet automatisch verbinding maakt. Om verbinding te maken met een geregistreerde server, klikt u met de rechtermuisknop op de gewenste server in het Object Inspector-venster en selecteert u Verbinden in het contextmenu dat verschijnt.

Een nieuwe servergroep maken

Om een ​​nieuwe servergroep aan te maken in het paneel Geregistreerde servers, klikt u met de rechtermuisknop Lokaal knooppunt Servergroepen: Selecteer in het venster Geregistreerde server Nieuwe servergroep in het contextmenu. In het dialoogvenster Nieuwe servergroepeigenschappen dat wordt geopend, nieuwe groep servers) voer een unieke naam in voor de groep en, optioneel, de beschrijving ervan.

Meerdere servers beheren

Met behulp van Object Explorer kunt u met SQL Server Management Studio meerdere databaseservers (instances genoemd) op één computer beheren. Elk exemplaar van de Database Server-component heeft zijn eigen set databaseobjecten (systeem- en gebruikersdatabases) die niet tussen exemplaren worden gedeeld.

Om de server en de configuratie ervan te beheren, klikt u met de rechtermuisknop op de servernaam in Object Explorer en selecteert u Eigenschappen in het contextmenu dat verschijnt. Het dialoogvenster Servereigenschappen wordt geopend en bevat verschillende pagina's, zoals Algemeen, Beveiliging, Machtigingen, enz.

Op de pagina Algemeen worden algemene servereigenschappen weergegeven:

De pagina Beveiliging bevat informatie over de authenticatiemodus van de server en de inlogauditmethode. Op de pagina Machtigingen worden alle accounts en rollen weergegeven die toegang hebben tot de server. Onderaan de pagina worden alle machtigingen weergegeven die aan deze accounts en rollen kunnen worden verleend.

U kunt de naam van de server wijzigen door deze een nieuwe naam te geven. Om dit te doen, klikt u met de rechtermuisknop op de gewenste server in het venster Objectverkenner en selecteert u Registreren in het contextmenu. U kunt de server nu een nieuwe naam geven en de beschrijving ervan wijzigen. Servers mogen niet worden hernoemd, tenzij dit noodzakelijk is, omdat dit gevolgen kan hebben voor andere servers die ernaar linken.

Servers starten en stoppen

Standaard start de Database Engine-server automatisch bij het opstarten van het besturingssysteem Windows-systemen. Om een ​​server te starten met behulp van SQL Server Management Studio, klikt u met de rechtermuisknop op de gewenste server in Object Inspector en selecteert u Start in het contextmenu. Dit menu bevat ook Stop- en Pauze-opties voor het uitvoeren van passende acties op de server.

Databases beheren met Object Explorer

Beheertaken die u kunt uitvoeren met SQL Server Management Studio zijn onder meer:

    databases maken zonder te gebruiken Transact-SQL-taal;

    databases aanpassen zonder de Transact-SQL-taal te gebruiken;

    beheer tabellen zonder de Transact-SQL-taal te gebruiken;

    creatie en uitvoering SQL-instructies(beschreven in het volgende artikel).

Databases maken zonder T-SQL te gebruiken

Er kan een nieuwe database worden gemaakt met behulp van de Objectbrowser Objectverkenner. Zoals de naam al doet vermoeden, kan Object Explorer ook worden gebruikt om serverobjecten te verkennen. Vanuit het paneel van deze tool kunt u alle serverobjecten bekijken en de server en databases beheren. De serverobjecthiërarchieboom bevat onder andere een map Databases. Deze map bevat op zijn beurt verschillende submappen, waaronder een map voor systeemdatabases en een map voor elke door de gebruiker gemaakte database.

Als u een database wilt maken met behulp van Object Explorer, klikt u met de rechtermuisknop op het knooppunt Databases en selecteert u het menu-item Nieuwe database. Voer in het dialoogvenster Nieuwe database dat wordt geopend, in het veld Databasenaam een ​​naam in nieuwe basis gegevens en klik vervolgens op OK.

Elke database heeft verschillende eigenschappen, zoals bestandstype, initiële grootte, enz. Een lijst met database-eigenschappenpagina's bevindt zich in het linkerdeelvenster van het dialoogvenster Nieuwe database. De pagina Algemeen van het dialoogvenster Database-eigenschappen bevat onder meer informatie zoals de naam, eigenaar en sortering van de database:

De eigenschappen van de gegevensbestanden van een specifieke database worden vermeld op de pagina Bestanden en bevatten informatie zoals de naam en initiële grootte van het bestand, de locatie van de database en het bestandstype (bijvoorbeeld primair). De database kan in verschillende bestanden worden opgeslagen. In SQL Server wordt het gebruikt dynamische controle schijfruimte. Dit betekent dat de databasegrootte kan worden geconfigureerd om automatisch te groeien en te verkleinen als dat nodig is.

om te veranderen Autogroei eigendom(Autogrowth) Klik op de pagina Bestanden in de kolom Autogrowth op het ellipspictogram (...) en breng de gewenste wijzigingen aan in het dialoogvenster Autogrowth wijzigen. Om automatische groei van de databasegrootte mogelijk te maken, moet u instellen Schakel het selectievakje Autogrowth in. Elke keer wanneer bestaande maat het bestand is niet voldoende om de toegevoegde gegevens op te slaan, de server vraagt ​​het systeem automatisch om extra schijfruimte aan het bestand toe te wijzen. Volume extra schijfruimte(in procenten of megabytes) wordt aangegeven in Veld Bestandsgroei in hetzelfde dialoogvenster. En in de sectie Maximale bestandsgrootte U kunt de maximale bestandsgrootte beperken door de schakelaar Beperkt tot (MB) te selecteren, of u kunt de groottebeperkingen verwijderen door de schakelaar Onbeperkt te selecteren (dit is de standaardinstelling). Als de bestandsgrootte beperkt is, moet u de toegestane maximale grootte opgeven.

Op de pagina Bestandsgroepen van het dialoogvenster Database-eigenschappen worden de namen weergegeven van de bestandsgroepen waartoe het databasebestand behoort, de bestandsgroeppartitie (standaard of expliciet) en de bewerkingen die op de bestandsgroep mogen worden uitgevoerd (lezen-schrijven of alleen-lezen). . lezing).

Op de pagina Opties van het dialoogvenster Database-eigenschappen kunt u alle opties op databaseniveau bekijken en wijzigen. De parametergroepen zijn Automatisch, Containment, Cursor, Diversen, Herstel, Servicemakelaar en Staat. De State-groep bevat bijvoorbeeld de volgende vier parameters:

Database alleen-lezen

Hiermee kunt u toegang tot de database tot stand brengen volledige toegang of alleen-lezen toegang. In het laatste geval kunnen gebruikers de gegevens niet wijzigen. De standaardwaarde voor deze parameter is False.

Beperkte toegang

Stelt het aantal gebruikers in dat tegelijkertijd de database kan gebruiken. De standaardwaarde is MULTI_USER.

Databasestatus

Beschrijft de status van de database. De standaardwaarde voor deze parameter is Normaal.

Versleuteling ingeschakeld

Specificeert de databaseversleutelingsmodus. De standaardwaarde voor deze parameter is False.

Op de pagina Uitgebreide eigenschappen worden aanvullende eigenschappen voor de huidige database weergegeven. Op deze pagina kunt u bestaande eigendommen verwijderen en nieuwe toevoegen.

Op de pagina Machtigingen worden alle gebruikers, rollen en bijbehorende machtigingen weergegeven.

Op de overige pagina's Wijzigingen bijhouden, Mirroring en Verzending van transactielogboeken worden de mogelijkheden beschreven die verband houden met de beschikbaarheid van gegevens.

Databasewijziging

Met Object Explorer kunt u bestaande databases wijzigen door databasebestanden en bestandsgroepen te wijzigen. Om nieuwe bestanden aan een database toe te voegen, klikt u met de rechtermuisknop op de gewenste database en selecteert u Eigenschappen in het contextmenu. In het dialoogvenster Database-eigenschappen dat wordt geopend, selecteert u de pagina Bestanden en klikt u op de knop Toevoegen onder aan de sectie Databasebestanden. Zal aan de sectie worden toegevoegd nieuwe lijn, in het veld Logische naam moet u de naam invoeren van het databasebestand dat moet worden toegevoegd, en in andere velden stelt u de benodigde eigenschappen van dit bestand in. U kunt ook een secundaire bestandsgroep voor de database toevoegen door de pagina Bestandsgroepen te selecteren en op de knop Toevoegen te klikken.

De eerder genoemde database-eigenschappen kunnen alleen worden gewijzigd door de systeembeheerder of de database-eigenaar.

Om databases te verwijderen met Object Explorer, klikt u met de rechtermuisknop op de naam van de gewenste database en selecteert u Verwijderen in het contextmenu dat wordt geopend.

Tafelbeheer

Na het maken van de database is de volgende taak het maken van alle benodigde tabellen. Net als bij het maken van een database, kunnen tabellen daarin ook worden gemaakt met behulp van Transact-SQL of Object Explorer. Net als bij het maken van een database, kijken we hier alleen naar het maken van tabellen met behulp van Object Explorer.

Om te oefenen met het maken van tabellen, maken we een Afdelingstabel in de SampleDb-database. Als u een databasetabel wilt maken met Object Explorer, vouwt u het knooppunt Databases uit, klikt u vervolgens op het gewenste databaseknooppunt, klikt u met de rechtermuisknop op de map Tabellen en selecteert u Nieuwe tabel in het contextmenu dat wordt geopend. Bovenaan met rechter zijde Het Management Studio-venster opent een venster voor het maken van kolommen voor een nieuwe tabel. Voer de tabelkolomnamen, hun gegevenstypen en de resolutie van nulwaarden voor elke kolom in, zoals weergegeven in het deelvenster rechtsboven in de onderstaande afbeelding:

Als u een van de door het systeem ondersteunde gegevenstypen voor een kolom wilt selecteren, selecteert u in de kolom Gegevenstype en klikt u vervolgens op het naar beneden gerichte driehoekje aan de rechterrand van het vak (deze driehoek verschijnt nadat u een cel hebt geselecteerd). Als gevolg hiervan selecteert u in de vervolgkeuzelijst die wordt geopend het vereiste gegevenstype voor de kolom.

U kunt het gegevenstype van een bestaande kolom wijzigen op het tabblad Kolomeigenschappen (onderste paneel in de afbeelding). Voor sommige gegevenstypen, zoals char, moet de lengte worden opgegeven in de regel Lengte, terwijl voor andere, zoals decimaal, de schaal en precisie moeten worden opgegeven in de juiste regels voor Schaal en Precisie op het tabblad Kolomeigenschappen. Voor sommige andere, zoals int, hoeft geen van deze eigenschappen te worden gespecificeerd. (Ongeldige waarden voor specifiek type gegevens worden gemarkeerd in een gearceerd lettertype in de lijst met alle mogelijke kolomeigenschappen.)

Toelaten nulwaarden voor een bepaalde kolom moet u het overeenkomstige veldselectievakje ervoor instellen. Als voor een kolom een ​​standaardwaarde vereist is, moet deze ook worden ingevoerd op de regel Standaardwaarde of Binding van het paneel Kolomeigenschappen. Er wordt automatisch een standaardwaarde aan een kolomcel toegewezen, tenzij er expliciet een waarde voor wordt ingevoerd.

De kolom Nummer is de primaire sleutel van de Afdelingstabel. Om van een kolom de primaire sleutel van een tabel te maken, klikt u er met de rechtermuisknop op en selecteert u Primaire sleutel instellen in het contextmenu.

Zodra u al het werk voor het maken van de tafel hebt voltooid, klikt u op het kruisje op het tabblad Tabelontwerper. Er wordt een dialoogvenster geopend waarin u wordt gevraagd of u uw wijzigingen wilt opslaan. Klik op Ja, waardoor het dialoogvenster Naam kiezen wordt geopend, waarin u wordt gevraagd een naam voor de tabel in te voeren. Voer de gewenste tabelnaam in en klik op OK. De tabel wordt opgeslagen onder opgegeven naam. Om de nieuwe tabel in de databasehiërarchie weer te geven, klikt u in de werkbalk Objectverkenner op het pictogram Vernieuwen.

Om de eigenschappen van een bestaande tabel te bekijken en te wijzigen, vouwt u de database uit die de gewenste tabel bevat, vouwt u het knooppunt Tabellen in die database uit, klikt u met de rechtermuisknop op de gewenste tabel en selecteert u vervolgens Eigenschappen in het contextmenu. Hierdoor wordt het dialoogvenster Tabeleigenschappen voor de tabel geopend. De onderstaande afbeelding toont bijvoorbeeld het dialoogvenster Tabeleigenschappen op het tabblad Algemeen voor de tabel Werknemer in de SampleDb-database.

Om de naam van een tabel te wijzigen, klikt u in de map Tabellen met de rechtermuisknop op de tabel in de tabellijst en selecteert u Naam wijzigen in het contextmenu. En om een ​​tabel te verwijderen, klikt u er met de rechtermuisknop op en selecteert u Verwijderen.

Nadat u alle vier de tabellen van de SampleDb-database hebt gemaakt (Employee, Department, Project en Works_on - u kunt de gedetailleerde tabelstructuur in de broncode vinden), kunt u een andere functie van SQL Server Management Studio gebruiken om een ​​entiteit-relatiediagram weer te geven: diagram (ER) (entiteit-relatie) deze databank. (Het proces van het converteren van databasetabellen naar een entiteit-relatiediagram (ER) wordt reverse engineering genoemd.)

Om een ​​ER-diagram voor de SampleDb-database te maken, klikt u met de rechtermuisknop op de submap Databasediagrammen en selecteert u Nieuw databasediagram in het contextmenu. Als er een dialoogvenster verschijnt waarin u wordt gevraagd of u hulpobjecten wilt maken, selecteert u Ja.

Hierdoor wordt het dialoogvenster Tabel toevoegen geopend, waarin u tabellen kunt selecteren om aan het diagram toe te voegen. Zodra u alle benodigde tabellen heeft toegevoegd (in dit geval alle vier), klikt u op Sluiten en de wizard maakt een diagram dat lijkt op het diagram dat in de onderstaande afbeelding wordt weergegeven:

De afbeelding toont alleen het tussenliggende ER-diagram van de SampleDb-database, niet het uiteindelijke ER-diagram, want hoewel het alle vier de tabellen met hun kolommen (en hun bijbehorende primaire sleutels) toont, toont het nog steeds niet de relaties tussen de tabellen. De relatie tussen twee tabellen is gebaseerd op hoofdsleutel een van de tabellen en een eventuele overeenkomstige kolom (of kolommen) van de andere tabel.

Er zijn drie relaties tussen de tabellen in de SampleDb-database. De afdelingstabel heeft een 1:N-relatie met de tabel Medewerker omdat elke waarde in de primaire sleutel van de afdelingstabel (kolom Nummer) overeenkomt met een of meer waarden in de kolom Afdelingsnummer van de tabel Werknemer (een afdeling kan meerdere medewerkers hebben).

Op dezelfde manier is er een relatie tussen de tabellen Employee en Works_on, omdat alleen de waarden die aanwezig zijn in de primaire sleutelkolom van de tabel Employee (Id) ook aanwezig zijn in de kolom EmpId van de tabel Works_on. De derde relatie bestaat tussen de tabellen Project en Works_on, omdat alleen waarden die aanwezig zijn in de primaire sleutel van de Project-tabel (Number) zijn ook aanwezig in de ProjectNumber-kolom van de Works_on-tabel.

Om deze drie relaties te creëren, moet het ER-diagram worden gereconstrueerd door voor elke tabel de kolommen op te geven die overeenkomen met de sleutelkolommen van de andere tabellen. Deze kolom heet vreemde sleutel. Om te zien hoe dit wordt gedaan, gaan we de kolom DepartmentNumber van de tabel Employee definiëren als externe sleutel Afdeling tafels. Voer hiervoor de volgende stappen uit:


De andere twee relaties komen op een vergelijkbare manier tot stand. De onderstaande afbeelding toont een ER-diagram waarin alle drie de relaties tussen de SampleDb-databasetabellen worden weergegeven:

« "is één universele omgeving voor toegang tot, configuratie en beheer van alle componenten van MS SQL Server, maar ook voor het ontwikkelen van systeemcomponenten, het bewerken van queryteksten, het maken van scripts, enz. Dankzij de aanwezigheid van een groot aantal visuele bedieningselementen, " SQL Server Beheerstudio"stelt beheerders met elk niveau van SQL Server-kennis in staat veel standaard MS SQL Server-beheerbewerkingen uit te voeren. Een eenvoudig te gebruiken ontwikkelomgeving, een ingebouwde webbrowser waarmee u snel toegang krijgt tot de MSDN-bibliotheek of online hulp kunt krijgen, een uitgebreide tutorial waarmee u veel nieuwe functies kunt leren kennen, ingebouwde hulp van online communities en nog veel meer om de ontwikkeling te vergemakkelijken in SQL Server zo eenvoudig mogelijk te maken, en biedt uitgebreide opties voor het maken van verschillende SQL Server-scripts. Over het installeren en uitvoeren van het programma " SQL Server Beheerstudio' en zal in dit artikel worden besproken.

1. Het SQL Server Management Studio-programma installeren

Programma " SQL Server Beheerstudio» wordt geleverd met de MS SQL Server-distributie. Om het te installeren, moet u de componenten markeren

  • Beheertools - Basis
    • Beheertools - Compleet

op de selectiepagina voor componenten van het MS SQL Server-installatieprogramma.

Ik heb in het artikel gedetailleerd geschreven over het installeren van MS SQL Server-componenten.

2. Start het SQL Server Management Studio-programma

Standaard worden programmabestanden " SQL Server Beheerstudio" worden geïnstalleerd in "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\Management Studio\". Om te beginnen " SQL Server Beheerstudio» moet worden gelanceerd origineel bestand Ssms.exe, die zich in deze map bevindt.

Ook bij Microsoft Windows-server 2012 (R2) snelkoppeling om te starten " SQL Server Beheerstudio» vind je in de lijst met alle programma's.

En in Microsoft Windows Server 2008 (R2) in het menu " Begin" (Begin) - " MicrosoftSQLServer 2012" - "Woensdag SQL Server Beheerstudio».

Na het starten vraagt ​​het programma u om de naam in te voeren van de SQL-server waarmee u verbinding moet maken, evenals de autorisatiegegevens op deze server. De serververbindingsreeks moet in het volgende formaat worden ingevoerd:

  • <Server adres> — servernaam of IP-adres voor de standaardinstantie
  • <Server adres>\<Instantienaam> - voor een benoemd exemplaar van SQL Server
  • <BijnaamNaam> - als SQL Server wordt gebruikt

In het geval van Windows-verificatie wordt de current rekening Ramen. Als u de inloggegevens van een andere gebruiker moet gebruiken, moet u het programma uitvoeren. Als u SQL Server-verificatie gebruikt, moet u de gebruikersnaam en het wachtwoord van een bestaande SQL Server-gebruiker invoeren.

Nadat u de naam van de serverinstantie en autorisatiegegevens hebt ingevoerd, klikt u op “ Aansluiten» (Verbinden) om verbinding te maken met de geselecteerde SQL-server.

Met de release van SQL Server 2005 zullen ontwikkelaars en databasebeheerders (DBA's) beschikken over een hele reeks nieuwe beheertools. SQL Server 2005 is niet alleen anders vanwege de nieuwe services die het toevoegt; Bij de ontwikkeling van dit product was het creëren van nieuwe managementtools voor DBA ook een van de belangrijkste taken. SQL Server 2000 Enterprise Manager en Query Analyzer zijn vervangen door een nieuw softwaretool- SQL Server Beheerstudio. Er zijn ook twee nieuwe tools die het vermelden waard zijn: SQL Server Configuration Manager en de Surface Area Configuration-tool. Voordat we naar de functies van SQL Server Management Studio kijken, bekijken we eerst elk van deze tools.

Hulpmiddelen voor configuratiebeheer

Telkens wanneer we SQL Server 2005 installeren, zullen we drie kleine nieuwe gebruiken hulpmiddelen. Om de veiligheid te verbeteren heeft SQL Server 2005 de meeste services en functies voor externe communicatie standaard uitgeschakeld, dus als de standaardinstellingen u niet bevallen, kunt u niet zonder deze hulpmiddelen. Met de eerste kunt u SQL Server-services beheren, de andere twee zijn ontworpen om een ​​set te vormen die wordt gebruikt om die interfaces te beheren waarmee ongeautoriseerde toegang tot SQL Server mogelijk is. Deze set interfaces wordt het SQL Server-aanvalsoppervlak genoemd.

SQL Server-configuratiebeheer. Met dit hulpprogramma kunt u de verschillende SQL Server 2005-serviceaccounts op de server beheren, evenals de services zelf. U kunt SQL Server 2005-services rechtstreeks vanuit SQL Server Management Studio starten en installeren, net zoals u voorheen deed met Enterprise Manager, zodat u SQL Server Configuration Manager niet helemaal opnieuw hoeft te leren. Dit programma is toegankelijk via het menu Start in Windows of via Computerbeheer in het menu Systeembeheer. En om SQL Server Management Studio te starten, wat we in de volgende sectie zullen bekijken, kunt u het dialoogvenster Management Studio Registered Servers gebruiken.

SQL Server Configuration Manager wordt gebruikt voor het beheren van SQL Server-services, netwerkbibliotheken en SQL Native Client (zie scherm 1). Hier kunt u instellingen voor serviceaccounts instellen en wijzigen, en services in- of uitschakelen. Dit hulpmiddel overlapt gedeeltelijk de functies van twee andere tools die deze diensten en andere functies beheren vanuit het oogpunt van het beheren van de bescherming tegen mogelijke bedreigingen.

Hulpmiddelen voor instellingen. SQL Server 2005 introduceert veel nieuwe services. Nu kunt u naast standaardservices zoals SQL Server, SQL Agent en Analysis Server ook instellingen beheren voor SQL Server Integration Services (voorheen Data Transformation Services, DTS), Reporting Services, Full-Text Search en SQL Browser.

Wanneer u SQL Server 2005 installeert, zijn deze services een potentieel doelwit voor aanvallen. Om stappen te ondernemen om uw aanvalsoppervlak te minimaliseren, biedt Microsoft twee nieuwe configuratietools aan: één voor het beheren van services en de andere voor het configureren van verbindingsinstellingen. Er zijn koppelingen naar deze programma's in de laatste fase van het installatieproces van SQL Server 2005, en ze zijn ook beschikbaar via het menu Start. Met deze hulpprogramma's kunt u de services en functies monitoren die potentiële kwetsbaarheden vormen voor aanvallen op SQL Server, en elk van deze services kan rechtstreeks vanuit deze programma's worden in- of uitgeschakeld.

Met behulp van het hulpprogramma Surface Area Configuration for Services and Connections kunt u het programma starten en uitschakelen diverse diensten(cm. scherm 2). Hier kunt u ook de status van de SQL Browser-service beheren, die werkt UDP-poort 1434 en converteert verbindingen naar benoemde objecten.

Het programma Surface Area Configuration for Features, weergegeven in scherm 3, kunt u verbindingen beheren, inclusief gespecialiseerde verbindingen verzoeken op afstand, CLR-instellingen, opgeslagen procedures in Database Mail (SMTP), speciale beheerdersverbindingen, webservices-eindpunten (SOAP), OLE-automatisering van uitgebreide opgeslagen procedures, Service Broker-eindpunten, opgeslagen SQL Mail-procedures (MAPI), xp_cmdshell en Web Assistant. Al deze functies zijn standaard uitgeschakeld en moeten indien nodig selectief worden ingeschakeld. De opgeslagen procedure sp_configure van het systeem kan worden gebruikt om veel van deze functies in te schakelen en kan ook worden gebruikt om de belangrijkste T-SQL-opdrachten op eindpunten in te schakelen.

Managementstudio

SQL Server 2005 introduceert een nieuwe geconsolideerde beheertool, SQL Server Management Studio. Het is een uitgebreide tool die functies combineert die relevant zijn voor DBA's en ontwikkelaars. Management Studio is een uitgebreide softwaretool die zoveel functies bevat als u kunt gedetailleerde beschrijving Eén artikel is duidelijk niet genoeg. De belangrijkste innovaties en veranderingen die in dit product beschikbaar zijn, kunnen in drie zinnen worden beschreven: serverbeheer, het bewerken van zoekopdrachten en prestatieanalyse.

Management Studio is een enorme toolbox: Microsoft heeft zorgvuldig de beste beheerfuncties van Enterprise Manager en de beste queryanalyse- en bewerkingsfuncties van Query Analyzer geselecteerd, en deze vervolgens gecombineerd tot een nieuwe softwaretool. We zullen deze nieuwe functies verderop in het artikel kort bekijken.

Wanneer u Management Studio voor de eerste keer start, zult u overeenkomsten met Visual Studio opmerken. Maar hoewel Management Studio gebaseerd is op de Visual Studio-shell en er enkele oppervlakkige overeenkomsten mee heeft, is dit misleidend: Management Studio is een volledig nieuwe softwaretool die is ontwikkeld met behulp van beheerde code.

Het is meteen duidelijk dat dit twee soorten dialoogvensters zijn: het centrale, niet-verplaatsbare deel van het Management Studio-venster wordt het documentvenstergebied genoemd, en de objecten die langs de randen zijn geplaatst worden componenten genoemd. In eerste instantie wordt in het standaarddocumentvenster een overzichtspagina weergegeven met enkele rapportagegegevens over geregistreerde personen SQL-servers Server. Wanneer u Management Studio voor het eerst start, worden de dialoogvensters voor de componenten Geregistreerde servers en Objectverkenner aan de linkerkant weergegeven, en bevat het documentvenster aan de rechterkant de pagina Samenvatting (zie. scherm 4). Dit toont de standaardset componenten, maar u kunt deze wijzigen door toe te voegen noodzakelijke componenten naar geselecteerde locaties. De pagina Samenvatting kan de componenten van een Object Explorer-knooppunt weergeven of een rapport genereren over een geselecteerd knooppunt. Nadat u een tijdje met componenten hebt gewerkt, raakt u bekend met een derde type dialoogvenster, de zogenaamde modelloze dialoogvensters, die niet zijn gekoppeld aan het hoofdvenster van Management Studio.

Net als in Visual Studio is elk van de componentvensters koppelbaar en verbergbaar. Met behulp van het punaisepictogram in de knoppenbalk van elk venster kunt u de functie voor automatisch verbergen inschakelen, die ook toegankelijk is door met de rechtermuisknop helemaal bovenaan het venster te klikken. Het automatisch verbergen van vensters is handig als u extra schermruimte nodig heeft om de Objectbrowser uit te vouwen, query's te schrijven, enz. U kunt het uiterlijk van deze vensters wijzigen door op de knop Vensterpositie te klikken (de knop met een kleine driehoekige pijl die naar beneden wijst). , die zich in de rechterbovenhoek van elk componentvenster bevindt).

Veel andere componentvensters zijn toegankelijk via het menu Beeld. Voor beheerdoeleinden zijn de vensters Geregistreerde servers en Objectverkenner die standaard actief zijn het meest relevant. De componentvensters Solution Explorer, Template Explorer en Properties zijn nuttiger voor het bewerken en analyseren van query's. Management Studio onthoudt uw laatste vensterweergave en configuratie-instellingen, zodat deze allemaal bewaard blijven de volgende keer dat u het programma start. Als u de vensterinstellingen naar de standaardstatus wilt resetten, selecteert u Venster opnieuw instellen in het menu Venster.

Management Studio biedt ondersteuning voor het beheren en bewerken van scripts voor veel elementen: SQL Server-database-instances, samen met Analysis Services, Report Services, Integration Services en SQL Server Mobile. Al dit soort services kunnen via Management Studio worden geregistreerd met behulp van Register Servers en vervolgens worden beheerd met behulp van Object Explorer. Hier kunt u T-SQL-scripts, Analysis Services-scripts en SQL Server Mobile-scripts bewerken en deze combineren in projecten met behulp van het Solution Explorer-venster, zoals weergegeven in de sectie over het bewerken van query's.

Administratie

Om de nieuwe mogelijkheden die beschikbaar zijn voor databasebeheerders met de introductie van Management Studio ten volle te kunnen waarderen, vergelijken we Management Studio eerst met Enterprise Manager, de standaard beheertool in SQL Server 2000. Enterprise Manager is een programma ingebouwd in SQL Server 2000 grafisch hulpprogramma, ontworpen om beheertaken van de databaseserver uit te voeren. Dit hulpprogramma heeft een aantal nadelen. Het kan met name alleen worden gebruikt voor het beheren van de relationele engine van SQL Server en de SQL Agent-service, maar niet voor de Analysis Services-service. Bovendien kan Enterprise Manager de gegevens niet effectief weergeven een groot aantal van servers, databases of databaseobjecten. Het tweede probleem is dat veel taken hier modale dialoogvensters gebruiken, dus nadat u iets hebt uitgevoerd, zoals een back-up, moet u vaak een nieuw exemplaar van Enterprise Manager starten om de server te blijven monitoren. Ten slotte is Enterprise Manager een module Microsoft-beheer Console (MMC), wat een niet erg stabiele werking veroorzaakt deze applicatie en er zijn zeer onaangename mislukkingen, en soms reageert het gewoon niet meer.

Alle genoemde beperkingen zijn verwijderd in Management Studio. Vanaf hier kunt u niet alleen relationele engine-instanties beheren, maar ook Analysis Services. Management Studio maakt gebruik van de nieuwe SQL Management Objects (SMO) API om efficiënt beheer van grote aantallen databaseobjecten mogelijk te maken. Ten slotte worden waar mogelijk modelloze dialogen gebruikt die zijn ontworpen met behulp van stabiele beheerde code.

Geregistreerde servers. In Management Studio is, in tegenstelling tot Enterprise Manager, het venster voor het registreren en organiseren van servers gescheiden van het venster voor het bekijken van serverobjecten. Informatie over geregistreerde servers of servergroepen kan worden geëxporteerd naar een XML-configuratiebestand en vervolgens worden geïmporteerd in dezelfde of een andere server door eenvoudigweg met de rechtermuisknop op de overeenkomstige geregistreerde server of servergroep te klikken en Exporteren te selecteren.

Bovendien scheidt SQL Server 2005 ook SQL Server-servicebeheerfuncties van serverbeheerfuncties. U kunt bijvoorbeeld geen services van geregistreerde servers starten of stoppen. Het onderdeel SQL Server Configuration Manager is voor dit doel ontworpen. Management Studio scheidt ook de procedures voor het registreren van een server, het verbinden met een server en het bekijken van serverobjecten. Tijdens de serverregistratie wordt er uiteraard voor testdoeleinden een kortetermijnverbinding met de server tot stand gebracht via het venster Geregistreerde servers, maar deze verbinding wordt niet permanent onderhouden. Als u echter met de rechtermuisknop op een geregistreerde server klikt en vervolgens Object Explorer of New Query selecteert, worden de verbindingsgegevens die bij de geregistreerde servergegevens zijn opgeslagen, door SQL Server gebruikt om toekomstige verbindingen met die server tot stand te brengen.

Objectverkenner. Dit is het belangrijkste hulpmiddel voor het organiseren van serverobjecten. Object Explorer biedt niet alleen beheerfuncties, maar ook mogelijkheden voor het bewerken van query's. Als u dieper in de SQL Server 2005-databaseprocessor kijkt, ziet u bijvoorbeeld dat de resulterende parameterboom vergelijkbaar is met Enterprise Manager. U kunt echter nog steeds exemplaren van Analysis Services registreren en beheren, wat niet mogelijk was in de klassieke Enterprise Manager.

Voor elk van de knooppunten die in de Object Explorer-boom worden weergegeven, kunnen verschillende administratieve dialoogvensters worden opgeroepen. Als u bijvoorbeeld met de rechtermuisknop op de naam van een databaseserver klikt, wordt een modelloos dialoogvenster Servereigenschappen weergegeven met verschillende tabbladen waarmee u de configuratie van de beheerinstellingen voor die server kunt bekijken en wijzigen.

Wanneer u het Object Explorer-knooppunt uitbreidt op het niveau van de SQL Server-database-engine, moet u er rekening mee houden dat SQL Agent een eigen knooppunt heeft en dat alle T-SQL-codeobjecten onder de categorie van het Programmeerbaarheidsknooppunt vallen, dat een assemblageknooppunt bevat. Als u de boomstructuur op Analysis Server-niveau uitbreidt, ziet u hier ook een nieuw knooppunt dat is ontworpen voor het huisvesten van opgeslagen procedures, die ook assemblages zijn.

De dialoogvensters van Object Explorer zijn gebaseerd op SMO, dat SQL-DMO in SQL Server 2000 vervangt en een verbeterd objectmodel is dat flexibeler is. SMO werkt in de asynchrone modus, waardoor u een serverknooppunt kunt openen en met veel objecten of methoden kunt werken zonder andere functies te beïnvloeden. Laten we zeggen dat we een database openen die honderden of zelfs duizenden tabellen bevat, en terwijl deze wordt geopend, kunnen we een ander knooppunt openen en ander werk doen. Het is ook de moeite waard te vermelden dat SMO alle noodzakelijke mechanismen bevat voor het werken met scripts, waardoor u vrijwel elke actie die in Object Explorer wordt uitgevoerd kunt automatiseren met behulp van scripts.

Het uitvoeren van administratieve taken

In Object Explorer worden systeemobjecten gescheiden van gebruikerscategorieobjecten. Bijvoorbeeld, systeembasissen data (master, model, msdb en tempdb) behoren tot de categorie Systeemdatabases, terwijl ze nieuw zijn trainingsbasissen data, AdventureWorks en AdventureWorksDW, zijn op maat gemaakt. Eén ding om in gedachten te houden is dat trainingsdatabases niet standaard worden geïnstalleerd, dus tenzij u tijdens de productinstallatie de juiste optie hebt geselecteerd, zijn er aan het einde van de installatie geen gebruikersdatabases beschikbaar.

Net als bij het instellen van servereigenschappen kunt u databaseparameters configureren door het venster Database-eigenschappen op te roepen. Management Studio ondersteunt ook ontwerptools voor tabellen en weergaven (in SQL Server 2000 bekend als Visual Data Tools), waaronder de tool Database Diagrams. In die dialoogvensters, die zijn ontworpen om met databaseobjecten te werken, hebben nu een ingebouwd scriptmechanisme, zodat alle acties hier kunnen worden geautomatiseerd met behulp van scripts (zie. scherm 5).

Het onderdeel Object Explorer in Management Studio bevat knooppunten voor het beheren van beveiligingsinstellingen. U kunt ook oudere SQL Server 2000 DTS-pakketten, Notification Services, triggers op databaseniveau, Database Mail en DDL-triggers op serverniveau beheren.

Zoals je zou verwachten heeft Management Studio ingebouwd SQL Server Agent-beheer, maar voegt het ook een nieuw knooppunt toe voor het beheer van de SQL Server Agent Proxy. Via SQL Server Agent Proxy kan voor elke afzonderlijke taakstap de juiste beveiligingscontext worden bepaald. Dit wordt bereikt door beveiligingsproxy's aan de gebruiker te verstrekken Windows-component SQL-agent. T-SQL-taken maken doorgaans geen gebruik van proxy's op stapniveau, maar ze kunnen nog steeds worden gebruikt om taken in te stappen om proxy's toe te wijzen voor Active X-besturingselementen, xp_cmdshell-bewerkingen, replicaties, Analysis Services, SQL Server en SQL Server Integration Services.

Query's bewerken

Naast een groot aantal nieuwe administratieve functies beschikt Management Studio nu over een volledig uitgeruste query-omgeving die de functionaliteit van Query Analyzer uit SQL Server 2000 aanzienlijk overtreft.

SQL Server 2000 Query Analyzer is het meest geschikt voor het bewerken van T-SQL-code en -scripts. Hoewel Query Analyzer een uitstekende T-SQL-editor heeft, kent het wel een aantal beperkingen. Het kan met name niet worden gebruikt voor het bewerken van andere typen SQL Server-scripts, zoals MDX-query's. Als u een query of script bewerkt in Query Analyzer, moet het bewerkingsvenster zijn verbonden met SQL Server en kunt u tijdens deze bewerkingssessie geen verbinding maken met een andere server. Wat de uitvoeringsplangrafiek betreft: de mogelijkheden van Query Analyzer zijn uitstekend voor het analyseren van de voortgang van een query, maar de grafische weergave van de uitvoer is niet overdraagbaar. Hoewel Query Analyzer T-SQL-scripts kan bewerken die zich als bestanden op schijf bevinden, biedt SQL Server 2000 bovendien geen directe interface met versiebeheerprogramma's. En nog een laatste ding. Hoewel de Object Browser-tool van Query Analyzer in een database kan zoeken naar T-SQL-codeobjecten, kan deze niet worden gebruikt voor databasebeheertaken.

Wat de bewerkingsmogelijkheden in Query Analyzer betreft, deze blijven bijna allemaal behouden in Management Studio, maar in het nieuwe product zijn alle hierboven beschreven beperkingen geëlimineerd. MET gebruik maken van Beheer Studio kan alle soorten SQL Server-scripts bewerken, niet alleen die geschreven in T-SQL, maar ook XML-scripts. Bij het bewerken van queries is het niet nodig om een ​​permanente verbinding met de server te hebben; dit kan nu in de offline modus, of tijdens de sessie kun je overschakelen naar een andere server waarop de query uitgevoerd moet worden. De grafische weergave van het uitvoeruitvoeringsplan verkregen in Management Studio kan worden overgedragen naar een andere Management Studio-sessie, zodat u met de verkregen resultaten kunt werken zonder dat u verbinding hoeft te maken met de bronserver. De Object Explorer-component van Management Studio bevat alle functionaliteit van Object Explorer uit Query Analyzer, maar biedt ook volledige ondersteuning voor beheerfuncties.

Offline werken. Er zijn verschillende manieren om een ​​nieuwe query te starten in Management Studio. Wanneer u Nieuw selecteert in het menu Bestand, kunt u drie typen query's maken: een T-SQL-query, een Analysis Services MDX-, DMS- of XMLA-query, of SQL-query Server mobiel. Bovendien kunnen de query's die u maakt, worden uitgevoerd vanuit Object Explorer of Solution Explorer, waar we het hierna over zullen hebben.

Het querybewerkingsproces in Management Studio is verbindingsonafhankelijk. Verzoeken kunnen worden uitgevoerd terwijl er verbinding is met de server, zonder er eerst een te hebben en er op het juiste moment een tot stand te brengen, of naar een andere server over te schakelen om hetzelfde verzoek uit te voeren. Hierdoor kunt u de SQL Server 2000-querybewerkingspraktijk gebruiken vanuit scripts en tekstbestanden. Wanneer u naar de bewerkingsmodus overschakelt, verschijnen er verschillende extra pictogrammen voor het bewerken van verzoeken, die met name bedoeld zijn voor het tot stand brengen, verbreken en wijzigen van verbindingen. Wanneer u query's bewerkt in Management Studio, kunt u de functie voor automatisch verbergen van het Objectbrowser-venster gebruiken, waardoor extra schermruimte vrijkomt voor bewerking.

Oplossingen en projecten. Management Studio beschikt over geavanceerde bewerkingsmogelijkheden, waarmee u gemaakte scripts en tekstbestanden kunt combineren tot applicaties (oplossing) en projecten (project). Een project is een benoemde verzameling scripts en tekstbestanden die doorgaans in een standaard worden gehost Windows-map, dat dezelfde naam heeft als het project zelf. Een applicatie is een verzameling van een of meer projecten, en alle projecten die in een bepaalde applicatie zijn opgenomen, kunnen worden opgenomen in een map met een naam die overeenkomt met de naam van de applicatie, maar er kunnen ook applicaties zijn die slechts één project bevatten en dienovereenkomstig met één optieplaatsing. Om een ​​nieuw project in Management Studio te maken, selecteert u het menu Bestand en vervolgens Nieuw, Project, waardoor het dialoogvenster Nieuw project wordt geopend.

In Management Studio krijgt een applicatie standaard dezelfde naam als een project, en de applicatie en het project bevinden zich in de map Mijn documenten. In gevallen waarin u een groot aantal scripts moet combineren tot één groot project, waarvan het wenselijk is om deze op te splitsen in verschillende subprojecten, kunt u meerdere projecten verzamelen in één applicatie met een betekenisvolle naam en de benodigde locatie ervoor instellen. In dit geval wordt het eerst gemaakt nieuw project en specificeert vervolgens de toepassing waarin het moet worden opgenomen. De standaardnaam voor een oplossing kan worden gewijzigd. Zodra een project en de bijbehorende oplossing zijn gemaakt, kunt u door de applicatie en de bijbehorende projecten navigeren met behulp van de Solution Explorer, zoals weergegeven in scherm 6 .

Stel dat u verschillende objecten wilt wijzigen die verband houden met het AdventureWorks HumanResources-schema. In dit geval zullen sommige scripts tabellen wijzigen, sommige zullen views wijzigen en sommige zullen de code van opgeslagen procedures wijzigen. Scripts van elk van deze typen kunnen worden gecombineerd tot overeenkomstige projecten, en de projecten worden vervolgens gecombineerd tot een applicatie. Eén manier om deze aanpak te implementeren wordt weergegeven in Figuur 6: Hier bevat een applicatie met de naam soln_HR verschillende projecten, die elk overeenkomen met een specifiek type wijziging dat in het HR-diagram wordt aangebracht.

Met behulp van de functionaliteit van applicaties en projecten kunt u scriptsets maken voor SQL Server Analysis Services of voor SQL Mobile, en deze in hun eigen projecten groeperen. Sets die als projecten zijn gedefinieerd, worden in de juiste mappen op schijf geplaatst en verschijnen als afzonderlijke knooppunten in Solution Explorer. Aan elk project kan een naam worden toegewezen en een map die op schijf kan worden geplaatst. Standaard wordt de projectmap in de applicatiemap geplaatst en worden alle bestanden van een bepaald project in deze map opgeslagen.

De mogelijkheid om bestanden in projecten en applicaties te ordenen is slechts één voordeel van de nieuwe scripttechnologie in SQL Server. Daarnaast heeft Management Studio een nauwe relatie met broncodereviewprogramma's als het broncodecontrolesysteem een ​​plug-in module is. Visual SourceSafe (VSS) heeft een één-op-één mapping tussen VSS-projecten en Management Studio-projecten, dus nadat u een project en applicatie in Management Studio hebt gemaakt, kan de volledige applicatie in VSS worden geladen voor de juiste validatie, en vervolgens worden gevalideerd op de individueel project- of dossierniveau. Om toegang te krijgen tot de uploadfunctionaliteit voor codebeheer, kunt u met de rechtermuisknop op een willekeurig knooppunt in de Solution Explorer klikken. U kunt parameters voor codeverificatie configureren in het dialoogvenster Opties, dat u kunt oproepen via het menu Extra Managementprogramma's Studio. In hetzelfde venster (Extra, Opties) kunt u enkele andere bewerkingsfuncties inschakelen, zoals regelnummering en dynamische hulp.

Interactief werken met databasescripts. U kunt Object Explorer gebruiken om T-SQL-objecten in de database te bewerken. Zodra u zich in een programmeerbaar databaseobject bevindt, zoals een opgeslagen procedure, functie of trigger, kunt u de T-SQL Query Editor aanroepen door Nieuw of Wijzigen te selecteren. Als Nieuw wordt geselecteerd, wordt er een sjabloon gebruikt waarvan de parameters kunnen worden bekeken en gewijzigd met behulp van de component Sjabloonverkenner. Als u de optie Wijzigen selecteert, wordt een ALTER-script gegenereerd dat overeenkomt met het geselecteerde object. De functies Nieuw en Wijzigen vervangen de functies van Assisted Editor die bestonden in vroege bètaversies van Management Studio voor SQL Server 2005.

Verbeteringen aan het uitvoeringsplan. Management Studio heeft twee belangrijke uitbreidingen met betrekking tot de mogelijkheden voor planweergave. Hier kunt u, net als in Query Analyzer, bekijken grafische versie uitvoeringsplan, zowel de iconen zelf als het kleurenschema hebben echter veranderingen ondergaan. Bovendien tonen de meeste pictogrammen nu details van de bewerking waarin SQL Server wordt uitgevoerd momenteel. Als u op het “+”-pictogram in de rechterbenedenhoek van het venster met de aanvraag voor een uitvoeringsplan klikt, kunt u naar een grotere weergave van de aanvraag gaan. En als u een van de knooppunten voor uitvoeringsplanverzoeken selecteert, wordt het dialoogvenster Eigenschappen weergegeven Extra informatie over deze actie.

Ik denk dat veel mensen de nieuwe functie in Management Studio, waarmee je je uitvoeringsplan grafisch draagbaar kunt maken, leuk zullen vinden. Je kunt beginnen met directe uitvoer in XML met behulp van SET SHOWPLAN_XML ON. Als de queryresultaten aan de container worden doorgegeven, bevat de resulterende dataset een verwijzing naar XML-document, met daarin informatie over het uitvoeringsplan. Als u op deze link klikt, kunt u de inhoud van het uitvoeringsplan bekijken in de XML Management Studio-editor.

Voor grafische weergavedoeleinden XML-gegevens kan worden geëxporteerd naar een draagbaar formaat. In de resulterende dataset moet u met de rechtermuisknop op de XML-link klikken en de gegevens opslaan als een bestand met de extensie .sqlplan, zoals weergegeven in scherm 7. Als u het opgeslagen bestand opent via het item Openen van het menu Bestand, zal Management Studio het XML-document weergeven als een grafische weergave van het uitvoeringsplan, zoals weergegeven in scherm 8.

Houd er rekening mee dat het dialoogvenster Eigenschappen nog steeds informatie uit het uitvoeringsplan weergeeft. Met deze functie kunt u een uitvoeringsplan verzenden via e-mail een collega of ondersteuningspersoon die het kan bekijken zonder verbinding te hoeven maken met een specifieke database.

Laten we het allemaal samenvoegen

De tools die beschikbaar zijn in SQL Server 2005 breiden de mogelijkheden van zowel beheer als ontwikkeling aanzienlijk uit. De interface van SQL Server Management Studio is bijvoorbeeld aanpasbaar, dus u kunt in elk geval zelf beslissen welke functies het meest noodzakelijk zijn en dienovereenkomstig die functies verbergen die niet in uw werk zullen worden gebruikt. Natuurlijk kun je tijdens het beheersen van nieuwe werkinstrumenten problemen tegenkomen die onvermijdelijk zijn tijdens de training, maar zoals de dichter zei: "Je treurige werk zal niet voor niets zijn."

Kahlan Delaney- Onafhankelijke consultant en instructeur voor SQL Server. Beschikt over MCT- en MCSE-certificaten. Auteur van Inside SQL Server 2000 (Microsoft Press). [e-mailadres beveiligd]

Ron Talmadge- Eigenaar en CEO van Prospice LLC, een databaseadviesbureau gevestigd in Seattle. Leider van de Pacific Northwest SQL Server Users Group, bezit MCSD- en MCP-certificeringen in SQL Server, beheert de PASSnews-nieuwsbrief en is een SQL Server MVP. Schreef Microsoft SQL Server 7.0 Beheerdershandleiding (Prima Publishing).