Exemplarische Vorgehensweise: Ändern von Datenbankobjekten
In dieser exemplarischen Vorgehensweise ändern Sie mithilfe des Transact-SQL-Editors die Definitionen von unterschiedlichen Datenbankobjekten im Datenbankprojekt. Dieser Vorgang umfasst die folgenden Schritte:
Öffnen Sie eine Projektmappe, die ein Datenbankprojekt enthält.
Fügen Sie eine Spalte in einer Tabelle hinzu. Der Kunde möchte verfolgen, in welchem Jahr bestimmte Produkte eingeführt wurden. Sie fügen daher der Tabelle Products im Schema Production die Spalte DateAdded hinzu.
Fügen Sie die Tabelle Purchasing.ShipperRating hinzu, um zu verfolgen, wie die Kunden die Servicequalität der Lieferanten beurteilen, die ihre Bestellungen abwickeln. Außerdem fügen Sie Fremdschlüsselbeziehungen und einen Index hinzu.
Vorbereitungsmaßnahmen
In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie Exemplarische Vorgehensweise: Stellen eines vorhandenen Datenbankschemas unter Versionskontrolle ausgeführt haben. Nach dem Durcharbeiten dieser exemplarischen Vorgehensweise verfügen Sie über die Projektmappe MyAdvWorks.
So öffnen Sie die Projektmappe MyAdvWorks
Zeigen Sie im Menü Datei auf Öffnen, und klicken Sie dann auf Projekt/Projektmappe.
Das Dialogfeld Projekt öffnen wird angezeigt.
Öffnen Sie den Ordner MyAdvWorks, und doppelklicken Sie auf MyAdvWorks.sln.
Die Projektmappe MyAdvWorks wird geöffnet und im Projektmappen-Explorer angezeigt.
Klicken Sie im Menü Ansicht auf Schemaansicht der Datenbank.
Die Schemaansicht wird angezeigt, wenn dies nicht bereits der Fall ist. Sie enthält alle Objekte, die in dem Datenbankprojekt definiert sind.
Erweitern Sie den Datenbankprojektknoten in der Schemaansicht, wenn er nicht bereits erweitert ist.
Ändern Sie dann eine Tabellendefinition, um einer Tabelle eine Spalte hinzuzufügen.
So fügen Sie der Tabelle Product die Spalte DateAdded hinzu
Erweitern Sie in der Schemaansicht den Ordner Production, erweitern Sie den Ordner Tables, klicken Sie mit der rechten Maustaste auf die Tabelle Product, und klicken Sie auf Öffnen.
Alternativ können Sie auch auf die Tabelle Product doppelklicken, um sie zu öffnen.
Der Transact-SQL-Editor wird geöffnet und zeigt die Definition für die Tabelle Product an.
Ändern Sie im Transact-SQL-Editor die Definition, um die Spalte DateAdded wie im folgenden Beispiel dargestellt hinzuzufügen:
CREATE TABLE [Production].[Product] ( [ProductID] INT IDENTITY (1, 1) NOT NULL, [Name] [dbo].[Name] NOT NULL, [ProductNumber] NVARCHAR (25) NOT NULL, [MakeFlag] [dbo].[Flag] NOT NULL, [FinishedGoodsFlag] [dbo].[Flag] NOT NULL, [Color] NVARCHAR (15) NULL, [SafetyStockLevel] SMALLINT NOT NULL, [ReorderPoint] SMALLINT NOT NULL, [StandardCost] MONEY NOT NULL, [ListPrice] MONEY NOT NULL, [Size] NVARCHAR (5) NULL, [SizeUnitMeasureCode] NCHAR (3) NULL, [WeightUnitMeasureCode] NCHAR (3) NULL, [Weight] DECIMAL (8, 2) NULL, [DaysToManufacture] INT NOT NULL, [ProductLine] NCHAR (2) NULL, [Class] NCHAR (2) NULL, [Style] NCHAR (2) NULL, [ProductSubcategoryID] INT NULL, [ProductModelID] INT NULL, [DateAdded] DATETIME NOT NULL, [SellStartDate] DATETIME NOT NULL, [SellEndDate] DATETIME NULL, [DiscontinuedDate] DATETIME NULL, [rowguid] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL, [ModifiedDate] DATETIME NOT NULL ); GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Products sold or used in the manfacturing of sold products.', @level0type = N'SCHEMA', @level0name = N'Production', @level1type = N'TABLE', @level1name = N'Product';
Wenn Sie die Objektdefinition ändern, checken Sie die Datei, die diese Definition enthält, aus der Versionskontrolle aus.
Klicken Sie im Menü Datei auf Product.table.sql speichern, um die Änderungen zu speichern.
Standardmäßig wird die Datei automatisch aus der Quellcodeverwaltung ausgecheckt. Wenn Sie die Quellcodeverwaltungseinstellungen geändert haben, werden Sie möglicherweise zum Auschecken der Datei aufgefordert. Dies ist jedoch abhängig von der Konfiguration der Versionskontrolleinstellungen.
Danach fügen Sie dem Datenbankprojekt eine Tabelle mit dem Namen ShipperRating hinzu.
So fügen Sie die Tabelle ShipperRating hinzu
Erweitern Sie in der Schemaansicht den Ordner Purchasing, und klicken Sie auf den Ordner Tables.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Sie können auch mit der rechten Maustaste auf den Ordner Tabellen klicken, auf Hinzufügen zeigen und dann auf Tabelle klicken.
Das Dialogfeld Neues Element hinzufügen wird angezeigt.
Klicken Sie in der Vorlagenliste auf Tabelle.
Geben Sie im Feld Name den Namen ShipperRating ein, und klicken Sie dann auf Hinzufügen.
Dem Datenbankprojekt und der Quellcodeverwaltung wird die Tabelle ShipperRating hinzugefügt. Der Transact-SQL-Editor wird angezeigt, damit Sie die Definition für diese Tabelle bearbeiten können.
Ändern Sie im Transact-SQL-Editor die Tabellendefinition entsprechend dem folgenden Beispiel:
-- ============================================= -- Create table definition for ShipperRating --Contains a rating of a shipper by --a customer, on a particular date. --Ratings are from 1-100. -- ============================================= CREATE TABLE [Purchasing].[ShipperRating] ( [ShipperID] [int] NOT NULL, [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL, [RatingDate] [datetime] NULL, [Rating] [int] NOT NULL ) ON [PRIMARY]
Klicken Sie im Menü Datei auf ShipperRating.table.sql speichern, um die Änderungen zu speichern.
Danach fügen Sie der Tabelle ShipperRating einen Fremdschlüssel hinzu.
So fügen Sie der Tabelle ShipperRating einen Fremdschlüssel hinzu
Klicken Sie in der Schemaansicht mit der rechten Maustaste auf die Tabelle ShipperRating, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Fremdschlüssel.
Das Dialogfeld Neues Element hinzufügen wird angezeigt, und die Vorlage Fremdschlüssel ist bereits hervorgehoben.
Geben Sie unter Name die Zeichenfolge FK_ShipperRating_Shippers ein, und klicken Sie dann auf Hinzufügen.
Der Fremdschlüssel FK_ShipperRating_Shippers wird der Tabelle ShipperRating im Projekt hinzugefügt. Der Transact-SQL-Editor wird angezeigt, damit Sie die Definition für die Fremdschlüssel bearbeiten können.
Tipp
Die Standarddefinition für den Fremdschlüssel verweist auf Spalte_1 in Tabellenname und nicht auf eine tatsächliche Tabelle und Spalte. Das Symbol für FK_ShipperRating_Shippers in der Schemaansicht zeigt daher einen Fehler an (ein roter Kreis mit einem weißen "x"). Außerdem wird ein Fehler im Fehlerlistenfenster angezeigt, um anzugeben, dass eine ungültige Datenbankobjektdefinition vorliegt. Dabei handelt es sich um ein erwartetes Verhalten. Für die Datei im Projektmappen-Explorer, die die Objektdefinition enthält, wird kein Fehlersymbol angezeigt.
Ändern Sie im Transact-SQL-Editor die Definition des Fremdschlüssels entsprechend dem folgenden Beispiel:
ALTER TABLE [Purchasing].[ShipperRating] ADD CONSTRAINT [FK_ShipperRating_Shippers] FOREIGN KEY ([ShipperID]) REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID])
Klicken Sie im Menü Datei auf ShipperRating.FK_ShipperRating_Shippers.fkey.sql speichern, um die Änderungen zu speichern. Das Fehlersymbol wird durch das normale Symbol für eine Fremdschlüsseleinschränkung ersetzt, da die Definition nun gültig ist.
Im letzten Schritt fügen Sie der Tabelle ShipperRating einen Index hinzu.
So fügen Sie der Tabelle ShipperRating einen Index hinzu
Klicken Sie in der Schemaansicht auf den Ordner Indizes.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Sie können auch mit der rechten Maustaste auf den Ordner Indizes klicken, auf Hinzufügen zeigen und dann auf Index klicken.
Klicken Sie in der Liste Vorlagen auf Index, wenn dieser Eintrag nicht bereits hervorgehoben ist.
Geben Sie im Feld Name den Namen ShipperRatingDate ein, und klicken Sie dann auf Hinzufügen.
Der Tabelle ShipperRating im Projekt wird der Index ShipperRatingDate hinzugefügt. Der Transact-SQL-Editor wird angezeigt, damit Sie die Definition für diesen Index bearbeiten können.
Tipp
Die Standarddefinition für den Index verweist auf Spalte_1 und nicht auf einen tatsächlichen Spaltennamen. Das Symbol für ShipperRatingDate im Projektmappen-Explorer zeigt daher einen Fehler an (weißes "X" in rotem Kreis). Außerdem wird ein Fehler im Fenster Fehlerliste angezeigt, um anzugeben, dass eine ungültige Datenbankobjektdefinition vorliegt. Dabei handelt es sich um ein erwartetes Verhalten.
Ändern Sie im Transact-SQL-Editor die Indexdefinition entsprechend dem folgenden Beispiel:
-- ============================================= -- Create index on RatingDate column in --the ShipperRating table. -- ============================================= CREATE INDEX [ShipperRatingDate] ON [Purchasing].[ShipperRating] (RatingDate)
Klicken Sie im Menü Datei auf ShipperRating.ShipperRatingDate.index.sql speichern, um die Änderungen zu speichern. Das Fehlersymbol wird durch das normale Symbol für einen Index ersetzt, da die Definition nun gültig ist.
So checken Sie die Änderungen in der Versionskontrolle ein
Zeigen Sie im Menü Ansicht auf Weitere Fenster, und klicken Sie auf Ausstehende Änderungen.
Das Fenster Ausstehende Änderungen wird angezeigt, damit Sie alle Dateien überprüfen können, die Sie hinzugefügt oder geändert haben.
Tipp
Beim Schreiben der Schritte in dieser Vorgehensweise wurde davon ausgegangen, dass Sie Team Foundation-Versionskontrolle verwenden. Wenn Sie nicht Team Foundation-Versionskontrolle verwenden, müssen Sie stattdessen die Schritte für Ihr Versionskontrollsystem ausführen.
(Optional) Geben Sie einen Kommentar zum Einchecken an.
Klicken Sie auf Einchecken.
Die Änderungen am Datenbankprojekt wurden eingecheckt und sind nun für andere Teammitglieder verfügbar.
Nächste Schritte
Wenn Sie die Offlinedarstellung dieser Datenbank geändert haben, müssen Sie die Änderungen auf dem Datenbankserver erstellen und bereitstellen. Informationen über das Erstellen und Bereitstellen von Änderungen finden Sie unter Exemplarische Vorgehensweise: Bereitstellen von Änderungen an einer vorhandenen der Versionskontrolle unterliegenden Datenbank.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Stellen eines vorhandenen Datenbankschemas unter Versionskontrolle
Konzepte
Schreiben und Ändern von Datenbankcode
Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung