Condividi tramite


Procedura dettagliata: modificare gli oggetti di database

In questa procedura dettagliata viene illustrato come utilizzare l'editor Transact-SQL per modificare le definizioni di diversi oggetti di database nel progetto di database. Questo processo è costituito dai passaggi seguenti:

  • Aprire una soluzione che contiene un progetto di database.

  • Aggiungere una colonna a una tabella. Un cliente desidera individuare in quale anno sono stati introdotti i prodotti. Per eseguire questo passaggio, aggiungere una colonna DateAdded alla tabella Product nello schema Production.

  • Aggiungere una tabella, Purchasing.ShipperRating, per tenere traccia delle considerazioni dei clienti sulla qualità del servizio dei corrieri che gestiscono gli ordini. Aggiungere inoltre relazioni di chiavi esterne e un indice.

Prerequisiti

In questa procedura dettagliata, si presuppone che sia stata completata la procedura descritta in Procedura dettagliata: Includere uno schema di database esistente nel controllo della versione. Come risultato di tale procedura dettagliata, si dispone di una soluzione che contiene un progetto di database denominato MyAdvWorks.

Per aprire la soluzione MyAdvWorks

  1. Scegliere Apri dal menu File e quindi fare clic su Progetto/Soluzione.

    Verrà visualizzata la finestra di dialogo Apri progetto.

  2. Aprire la cartella MyAdvWorks e fare doppio clic su MyAdvWorks.sln.

    La soluzione MyAdvWorks verrà aperta e visualizzata in Esplora soluzioni.

  3. Scegliere Visualizzazione schema database dal menu Visualizza.

    Se non è già visualizzata, verrà aperta la finestra Visualizzazione schema. In questa finestra vengono visualizzati tutti gli oggetti definiti nel progetto di database.

  4. Se non è ancora espanso, espandere il nodo del progetto di database nella finestra Visualizzazione schema.

    Modificare quindi una definizione di tabella per aggiungere una colonna a una tabella.

Per aggiungere una colonna DateAdded alla tabella Product

  1. In Visualizzazione schema espandere la cartella Production, espandere la cartella Tabelle, fare clic con il pulsante destro del mouse sulla tabella Product e fare clic su Apri.

    In alternativa è inoltre possibile fare doppio clic sulla tabella Product per aprirla.

    Verrà visualizzato l'editor Transact-SQL con la definizione della tabella Product.

  2. Nell'editor Transact-SQL modificare la definizione per aggiungere la colonna DateAdded, come illustrato nell'esempio seguente:

    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';
    

    Quando si modifica la definizione dell'oggetto, si estrae il file che contiene la definizione dal controllo della versione.

  3. Scegliere Salva Product.table.sql dal menu File per salvare le modifiche.

    Per impostazione predefinita, il file viene automaticamente estratto dal controllo del codice sorgente. Se sono state modificate le impostazioni del controllo del codice sorgente, è possibile che venga richiesto di estrarre il file, a seconda della configurazione delle impostazioni del controllo della versione.

    Aggiungere quindi una tabella denominata ShipperRating al progetto di database.

Per aggiungere la tabella ShipperRating

  1. In Visualizzazione schema, espandere la cartella Purchasing e fare clic sulla cartella Tabelle.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto. È inoltre possibile fare clic con il pulsante destro del mouse sulla cartella Tabelle, scegliere Aggiungi e quindi Tabella.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.

  3. Selezionare Tabella nell'elenco Modelli.

  4. In Nome digitare ShipperRating e quindi scegliere Aggiungi.

    La tabella ShipperRating verrà aggiunta al progetto di database e al controllo del codice sorgente. Verrà visualizzato l'editor Transact-SQL che consente di modificare la definizione di questa tabella.

  5. Nell'editor Transact-SQL modificare la definizione della tabella affinché corrisponda all'esempio seguente:

    -- =============================================
    -- 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]
    
  6. Scegliere Salva ShipperRating.table.sql dal menu File per salvare le modifiche.

    Aggiungere quindi una chiave esterna alla tabella ShipperRating.

Per aggiungere una chiave esterna alla tabella ShipperRating

  1. Nella finestra Visualizzazione schema fare clic con il pulsante destro del mouse sulla tabella ShipperRating, scegliere Aggiungi e quindi Chiave esterna.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento con il modello Chiave esterna già evidenziato.

  2. In Nome digitare FK_ShipperRating_Shippers e quindi scegliere Aggiungi.

    La chiave esterna FK_ShipperRating_Shippers verrà aggiunta alla tabella ShipperRating nel progetto. Verrà visualizzato l'editor Transact-SQL che consente di modificare la definizione della chiave esterna.

    Nota

    La definizione predefinita per la chiave esterna fa riferimento a colonna_1 in nometabella, anziché a una tabella e una colonna reali. Di conseguenza, nell'icona per FK_ShipperRating_Shippers nella finestra Visualizzazione schema verrà visualizzata l'icona di errore (cerchio rosso con una "x" bianca). Verrà inoltre visualizzato un errore nella finestra Elenco errori per indicare che è presente una definizione dell'oggetto di database non valida. Si tratta di un comportamento previsto. Per il file in Esplora soluzioni che contiene la definizione dell'oggetto non viene visualizzata un'icona di errore.

  3. Nell'editor Transact-SQL modificare la chiave esterna affinché corrisponda all'esempio seguente:

    ALTER TABLE [Purchasing].[ShipperRating]
    ADD CONSTRAINT [FK_ShipperRating_Shippers] 
    FOREIGN KEY ([ShipperID])
    REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID])
    
  4. Scegliere Salva ShipperRating.FK_ShipperRating_Shippers.fkey.sql dal menu File per salvare le modifiche. L'icona di errore verrà sostituita da un'icona normale di vincolo di chiave esterna poiché ora la definizione è valida.

    Nell'ultimo passaggio viene aggiunto un indice alla tabella ShipperRating.

Per aggiungere un indice alla tabella ShipperRating

  1. Nella finestra Visualizzazione schema fare clic sulla cartella Indici.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto. È inoltre possibile fare clic con il pulsante destro del mouse sulla cartella Indici, scegliere Aggiungi e quindi Indice.

  3. Se non è ancora evidenziato, selezionare Indice nell'elenco Modelli.

  4. In Nome digitare ShipperRatingDate e quindi scegliere Aggiungi.

    L'indice ShipperRatingDate verrà aggiunto alla tabella ShipperRating nel progetto. Verrà visualizzato l'editor Transact-SQL che consente di modificare la definizione dell'indice.

    Nota

    La definizione predefinita per l'indice fa riferimento a colonna_1, anziché a un nome di colonna reale. Di conseguenza, nell'icona per ShipperRatingDate in Esplora soluzioni verrà visualizzata l'icona di errore (cerchio rosso con una "x" bianca). Verrà inoltre visualizzato un errore nella finestra Elenco errori per indicare che è presente una definizione dell'oggetto di database non valida. Si tratta di un comportamento previsto.

  5. Nell'editor Transact-SQL modificare la definizione dell'indice affinché corrisponda all'esempio seguente:

    -- =============================================
    -- Create index on RatingDate column in 
    --the ShipperRating table.
    -- =============================================
    CREATE INDEX [ShipperRatingDate]
    ON [Purchasing].[ShipperRating]
    (RatingDate)
    

    Scegliere Salva ShipperRating.ShipperRatingDate.index.sql dal menu File per salvare le modifiche. L'icona di errore verrà sostituita da un'icona normale di indice poiché ora la definizione è valida.

Per archiviare le modifiche nel controllo delle versioni

  1. Scegliere Altre finestre dal menu Visualizza, quindi fare clic su Modifiche in sospeso.

    Verrà visualizzata la finestra Modifiche in sospeso che consente di esaminare tutti i file aggiunti o modificati.

    Nota

    I passaggi di questa procedure sono scritti presupponendo l'utilizzo di Controllo della versione di Team Foundation. Se non si utilizza Controllo della versione di Team Foundation, è necessario seguire invece le procedure per il sistema di controllo della versione in uso.

  2. (facoltativo) Specificare un commento di archiviazione.

  3. Scegliere Archivia.

    Le modifiche al progetto di database verranno archiviate e saranno rese disponibili agli altri membri del team.

Passaggi successivi

Dopo aver modificato la rappresentazione offline di questo database, è necessario compilare e distribuire le modifiche al server database. Per compilare e distribuire le modifiche, vedere Procedura dettagliata: distribuzione delle modifiche a un database esistente con controllo della versione.

Vedere anche

Attività

Procedura dettagliata: Includere uno schema di database esistente nel controllo della versione

Procedura dettagliata: creazione e distribuzione di un nuovo database con controllo delle versioni

Concetti

Scrittura e modifica del codice del database

Compilazione e distribuzione di database in un ambiente di sviluppo isolato

Refactoring del codice e dei dati del database