Udostępnij za pośrednictwem


Dodawanie wierszy przy użyciu WSTAW i wybierz

WSTAW i instrukcji SELECT umożliwia dodawanie wierszy do tabela w następujący sposób:

  • Umożliwia określenie wartości bezpośrednio lub z podzapytanie instrukcja INSERT.

  • Za pomocą instrukcja SELECT klauzula INTO.

Za pomocą polecenia WSTAW

Instrukcja INSERT dodaje jeden lub więcej nowych wierszy do tabela.W uproszczonej WSTAW ma następującą postać:

INSERT [INTO] table_or_view [(column_list)] data_values

The INSERT statement inserts data_values as one or more rows into the specified table or view.column_list is a list of column names, separated by commas, that can be used to specify the columns for which data is supplied.Jeśli column_list nie jest określony, wszystkie kolumny w tabela lub widoku odbierania danych.

Gdy column_list nie określa wszystkie kolumna w tabela lub widoku, albo wartość domyślną, jeśli zdefiniowano domyślną dla kolumna, lub NULL jest wstawiany do dowolnej kolumna nie określona na liście.Wszystkie kolumna, które nie są określone na liście kolumn należy Zezwalaj na wartości null lub ma przypisane wartości domyślnej.

Instrukcji INSERT nie określono wartości dla następujących typów kolumn, ponieważ Aparat baz danych programu SQL Server generuje wartości dla tych kolumn:

  • kolumna z właściwość tożsamości, która generuje wartości dla kolumna.

  • Kolumny, które mają domyślny, funkcja NEWID aby generować unikatową wartość identyfikatora GUID.

  • Kolumny obliczane.

    Obliczane kolumny są wirtualne kolumn, które są zdefiniowane jako wyrażenie obliczane na podstawie jednego lub kilku innych kolumn CREATE TABLE instrukcja, takich jak:

    CREATE TABLE TestTable
      (ColA INT PRIMARY KEY,
       ColB INT NOT NULL,
       ColC AS (ColA + ColB) * 2);
    

Poniższy przykład pokazuje jak wstawianie wierszy do tabela zawierającej kolumny, które automatycznie generuje wartość lub wartość domyślna.INSERT Instrukcji Wstaw wiersze zawierające wartości niektórych kolumn, ale nie wszystkich.W ostatnim INSERT instrukcja, są określone żadne kolumny i wartości domyślne są wstawiane.

USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('dbo.T1', 'U') IS NOT NULL
    DROP TABLE dbo.T1;
GO
CREATE TABLE dbo.T1 
(
    column_1 AS 'Computed column ' + column_2, 
    column_2 varchar(30) 
        CONSTRAINT default_name DEFAULT ('my column default'),
    column_3 rowversion,
    column_4 varchar(40) NULL
);
GO
INSERT INTO dbo.T1 (column_4) 
    VALUES ('Explicit value');
INSERT INTO dbo.T1 (column_2, column_4) 
    VALUES ('Explicit value', 'Explicit value');
INSERT INTO dbo.T1 (column_2) 
    VALUES ('Explicit value');
INSERT INTO T1 DEFAULT VALUES; 
GO
SELECT column_1, column_2, column_3, column_4
FROM dbo.T1;
GO

Za pomocą polecenia WSTAW klauzula wartości i SELECT podkwerendy

Wartości danych dostarczonych muszą odpowiadać kolumna listy.Liczba wartości danych musi być taka sama jak liczba kolumn, a typ danych, precyzji i skali wszystkich wartości danych muszą zgadzać się z odpowiedniej kolumna.Można określić wartości danych w następujący sposób:

  • Za pomocą VALUES klauzula, aby określić wartości danych dla jednego wiersza.Na przykład:

    INSERT INTO MyTable (PriKey, Description)
           VALUES (123, 'A description of part 123.');
    

    Aby uzyskać więcej informacji, zobacz Wstawianie wierszy za pomocą wartości i WSTAW.

  • Za pomocą SELECT podzapytanie, aby określić wartości danych dla jednego lub kilku wierszy, takie jak:

    INSERT INTO MyTable  (PriKey, Description)
           SELECT ForeignKey, Description
           FROM SomeView;
    

    Aby uzyskać więcej informacji, zobacz Wstawianie wierszy za pomocą WSTAWIANIA i SELECT podkwerendy.

Użyciu SELECT INTO

Aby utworzyć nową tabela z wartości w innej tabela, można użyć SELECT INTO.Na przykład:

SELECT LastName, FirstName, Phone
INTO dbo.PhoneList492
FROM dbo.Customers
WHERE Phone LIKE '492%'

Aby uzyskać więcej informacji, zobacz Wstawianie wierszy za pomocą SELECT INTO.