INSERT Examples (Transact-SQL)

W tym temacie przedstawiono przykłady używania WSTAWIANIE instrukcja.Przykłady są pogrupowane według następujących kategorii.

Kategoria

Elementy składni witryny

Podstawowa składnia

• tabela wartość konstruktora INSERT

Obsługa wartości kolumna

• Typy zdefiniowane przez użytkownika wartości IDENTITY • NEWID • domyślne

Wstawianie danych z innych tabel

• INSERT…wykonać • INSERT…SELECT WITH • typowe wyrażenie tabela TOP

Określanie obiektów miejsce docelowe innych niż tabele standardowe

Zmienne Tabela • widoków

Wstawianie wierszy do tabela zdalnej

Serwer połączony • OPENQUERY zestawu zestaw wierszy funkcja • OPENDATASOURCE zestawu zestaw wierszy funkcja

Zbiorcza załadowanie danych z plików tabel lub danych

Funkcja OPENROWSET • INSERT…SELECT

Zastępowanie zachowania domyślnego z optymalizator kwerendy za pomocą wskazówki

Wskazówki dotyczące tabela

Przechwytywanie wyniki instrukcja INSERT

Klauzula wyjście

Podstawowa składnia polecenia

Przykłady w tej części pokazują podstawowych funkcji przy użyciu minimalnej wymaganej składni instrukcja INSERT.

A.Wstawianie pojedynczego wiersza danych

W poniższym przykładzie wstawia wiersz do Production.UnitMeasure Tabela. Kolumny w tej tabela są UnitMeasureCode, Name, a ModifiedDate. Ponieważ wartości dla wszystkich kolumna s są dostarczane i są wyświetlane w tej samej kolejności, jako s kolumna w tabela, kolumna nazwy nie muszą być określone w kolumna listy.

B.Wstawianie wielu wierszy danych

W poniższym przykładzie użyto Konstruktor wartość tabeli , aby wstawić trzy wiersze do Production.UnitMeasure Tabela w pojedynczej instrukcja INSERT. Ponieważ wartości we wszystkich kolumnach są dostarczane i są wyświetlane w kolejności kolumn w tabela, nazwy kolumn nie mają być określone na liście kolumn.

C.Wstawianie danych, który nie znajduje się w kolejności kolumn tabela

W poniższym przykładzie użyto lista kolumn do jawnego określenia wartości, które są wstawiane do każdej kolumna.Kolejność kolumn w Production.UnitMeasure Tabela jest UnitMeasureCode, Name, ModifiedDate; Jednak kolumna nie są wymienione w tym celu w column_list.

Obsługa wartości kolumna

Metody wstawiania wartości do kolumn, które są zdefiniowane w właściwość tożsamości, DEFAULT wartość lub są definiowane z typami danych, takich jak wykazać, przykłady w tej sekcji uniqueidentifer lub kolumny, typ zdefiniowany przez użytkownika.

A.Wstawianie danych do tabela zawierającej kolumny, które zawierają wartości domyślne

The following example shows inserting rows into a table with columns that automatically generate a value or have a default value.Column_1 is a computed column that automatically generates a value by concatenating a string with the value inserted into column_2.Column_2 is defined with a default constraint.If a value is not specified for this column, the default value is used.Column_3 is defined with the rowversion data type, which automatically generates a unique, incrementing binary number.Column_4 does not automatically generate a value.Jeśli nie określono wartości dla tej kolumna, zostanie wstawiony wartości NULL.Instrukcji INSERT wstawić wiersze zawierające wartości dla niektórych kolumn, ale nie wszystkich.W ostatniej instrukcja INSERT są określone żadne kolumny, a tylko wartości domyślne są wstawiane za pomocą klauzula DEFAULT VALUES.

B.Wstawianie danych do tabela zawierającej kolumna tożsamości

W poniższym przykładzie pokazano różne metody wstawiania danych do kolumna tożsamości.Pierwsze dwie instrukcji INSERT zezwala na wartości tożsamości, które mają być generowane dla nowych wierszy.Trzecia instrukcja INSERT zastępuje właściwość IDENTITY dla kolumna w instrukcji zestaw IDENTITY_INSERT i wstawia jawne wartość kolumna tożsamości.

C.Wstawianie danych do kolumna uniqueidentifier przy użyciu NEWID()

W poniższym przykładzie użyto NEWIDFunkcja () w celu uzyskania identyfikatora GUID dla column_2. Inaczej niż w przypadku kolumn identyfikacji Database Engine nie generuje automatycznie wartości dla kolumn z Uniqueidentifier typu danych, jak to pokazano w drugim INSERT Instrukcja.

D.Wstawianie danych do kolumny typ zdefiniowany przez użytkownika

Poniżej Transact-SQL instrukcje wstawione trzy wiersze PointValue Kolumna Points Tabela. To kolumna używa zdefiniowany przez użytkownika typ danych CLR (UDT).The Point data type consists of X and Y integer values that are exposed as properties of the UDT.Należy użyć funkcja CAST albo CONVERT oddać rozdzielaną przecinkami wartości X i Y do Point Typ. Pierwsze dwie instrukcje za pomocą funkcji konwersji do konwersji wartości ciąg na Point Typ, a trzecia instrukcja funkcja CAST. Aby uzyskać więcej informacji zobaczManipulowanie UDT danych.

INSERT INTO dbo.Points (PointValue) VALUES (CONVERT(Point, '3,4'));
INSERT INTO dbo.Points (PointValue) VALUES (CONVERT(Point, '1,5'));
INSERT INTO dbo.Points (PointValue) VALUES (CAST ('1,99' AS Point));

Wstawianie danych z innych tabel

Przykłady w tej części pokazują metody wstawiania wierszy z jednej tabela do drugiej tabela.

A.Przy użyciu opcji SELECT i wykonać do wstawiania danych z innych tabel

W poniższym przykładzie przedstawiono sposób wstawiania danych z jednej tabela do innej tabela przy użyciu INSERT…SELECT lub INSERT…wykonać.Każda jest oparta na multi-tabela instrukcja SELECT zawierającej wyrażenie i wartość literału w kolumna listy.

Pierwsza instrukcja INSERT używa instrukcji SELECT w celu dziedziczyć (tabele urządzenie źródłowe danychEmployee, SalesPerson, a Contact) i zapisać zestaw wyników w EmployeeSales Tabela. Druga instrukcja INSERT użyto klauzula wykonać do wywołania procedura przechowywana, która zawiera instrukcję SELECT, a trzeci INSERT odwołać instrukcji SELECT jako literał ciąg za pomocą klauzula wykonać.

B.Korzystanie z typowych tabela wyrażenie do definiowania danych, wstawić

Poniższy przykład tworzy NewEmployee Tabela. (Wyrażenie) wspólnych tabeliEmployeeTemp) definiuje się wiersze z jednej lub kilku tabel, które ma zostać wstawiony do NewEmployee Tabela. Instrukcja INSERT odwołuje się do kolumn w typowych wyrażenie tabela.

C.Za pomocą TOP w celu ograniczenia ilości danych wstawianych z tabela źródłowej

W poniższym przykładzie użyto U GÓRY klauzula, aby ograniczyć liczbę wierszy do NewEmployee Tabela z Employee Tabela. W przykładzie wstawia dane adres dla pierwszego zestaw losowe 10 pracowników z Employee Tabela do niego. Aby sprawdzić zawartość następnie wykonaniu instrukcja SELECT NewEmployee Tabela.

Określanie miejsce docelowe obiektów innych niż tabele standardowe

Przykłady w tej sekcji pokazano sposób wstawić wiersze przez określenie zmiennej tabela lub widoku.

A.Wstawianie danych przez określenie widoku

W poniższym przykładzie określa nazwę widoku jako obiekt miejsce docelowe; jednak w podlegającej jej tabela bazowa dodaje się nowy wiersz.Kolejność wartości w polach INSERT Instrukcja musi odpowiadać kolejności kolumn w widoku. Aby uzyskać więcej informacji zobaczModifying Data Through a View.

B.Wstawianie danych do zmiennej tabela

W poniższym przykładzie określa zmienną tabela jako obiekt miejsce docelowe.

Wstawianie wierszy do tabela zdalna

Przykłady w tej sekcji przedstawienie sposobu Wstawianie zestaw wierszy do tabela miejsce docelowe zdalnego za pomocą serwer połączony or a Funkcja zestawu zestaw wierszy , aby odwołać się tabela zdalna.

A.Wstawianie danych do tabela zdalna za pomocą serwer połączony

W poniższym przykładzie wstawia wiersze tabela zdalna.W przykładzie rozpoczyna się, tworząc łącze do urządzenie źródłowe dane zdalne za pomocą sp_addlinkedserver.Połączonych nazwa serwera, MyLinkServer, następnie jest określony jako część nazwy four-part obiektu w formularzu Server.Catalog.Schema.Object.

B.Wstawianie danych do tabela zdalna za pomocą funkcja OPENQUERY

W poniższym przykładzie wstawia wiersz do tabela zdalna określając OPENQUERY funkcja zestawu zestaw wierszy.Nazwa serwer połączony, utworzony w poprzednim przykładzie jest używana w tym przykładzie.

C.Wstawianie danych do tabela zdalna za pomocą funkcja OPENDATASOURCE

W poniższym przykładzie wstawia wiersz do tabela zdalnej przez określenie OPENDATASOURCE funkcja zestawu zestaw wierszy.Określ prawidłową nazwa serwera dla urządzenie źródłowe danych przy użyciu formatu nazwa_serwera or server_name\instance_name.

Zbiorcze ładowanie danych z tabel lub pliki danych

Przykłady w tej części pokazują dwie metody zbiorczej ładowania danych do tabela za pomocą instrukcja INSERT.

A.Wstawianie danych do sterty z minimalnym rejestrowania

Poniższy przykład tworzy nową tabela (stosu) i wstawia dane z innej tabela do niej za pomocą minimalnych rejestrowania.W przykładzie założono, że model odzyskiwanie AdventureWorks Baza danych jest ustawiony na FULL. Aby zapewnić minimalny rejestrowanie jest używany, modelu odzyskiwanie AdventureWorks Baza danych jest ustawiony na BULK_LOGGED przed wiersze są wstawiane i przywrócić FULL po instrukcja INSERT INTO…SELECT. Ponadto wskazówka TABLOCK określono w tabela miejsce docelowe Sales.SalesHistory. Takie rozwiązanie gwarantuje, że instrukcja korzysta z minimalnej miejsca dziennik transakcji i wykonuje wydajnie.

B.Użycie funkcja OPENROWSET z BULK ładowanie zbiorcze danych do tabela

W poniższym przykładzie wstawia wiersze z pliku danych do tabela przez określenie funkcja OPENROWSET.Wskazówka IGNORE_TRIGGERS tabela określono dla optymalizacji wydajności.Aby uzyskać więcej przykładów zobacz Importing Bulk Data by Using BULK INSERT or OPENROWSET(BULK...).

Zastępowanie domyślnego zachowania programu optymalizator kwerendy przy użyciu wskazówki

Przykłady w tej sekcji przedstawienie sposobu używania wskazówki dotyczące tabela , aby tymczasowo zastąpić domyślne zachowanie optymalizator kwerendy podczas przetwarzania instrukcja INSERT.

Ostrzeżenie

0 = SQL Server Identyfikator zamówienia sortowania

A.Określanie metody blokowania przy użyciu wskazówki TABLOCK

W poniższym przykładzie określa, że blokada wyłączności (X) jest pobierana z tabela Production.Location i są przechowywane aż do końca instrukcja INSERT.

Przechwytywanie wyniki instrukcja INSERT

Przykłady w tej sekcji przedstawienie sposobu używania Klauzula wyjście zwraca informacje, lub na podstawie wyrażenia, każdy wiersz dotyczy instrukcja INSERT.Wyniki te mogą być zwracane do aplikacji przetwarzania do użycia w takich elementów, jak komunikatów potwierdzających, archiwizowanie i innych takich wymagań aplikacji.

A.Wyjście przy użyciu instrukcja INSERT

W poniższym przykładzie wstawia wiersz do ScrapReason Tabela i zastosowań OUTPUT Klauzula zwrócić wyniki instrukcja do @MyTableVar Zmienna tabeli. Ponieważ ScrapReasonID kolumna zdefiniowano z IDENTITY Właściwość, wartość nie jest określona w INSERT instrukcja dla tej kolumna. Należy jednak zwrócić uwagę, że wartość jest generowana przez Database Engine dla tej kolumny jest zwracany w OUTPUT w klauzula INSERTED.ScrapReasonID Kolumna.

B.Z tożsamości i kolumny obliczane przy użyciu wyjście

Poniższy przykład tworzy EmployeeSales Tabela, który jest następnie wstawiany kilka wierszy do niej za pomocą instrukcja INSERT za pomocą instrukcja SELECT w celu pobrania danych z tabelami źródłowymi. The EmployeeSales tabela contains an kolumna tożsamości (EmployeeID) and a kolumna obliczana (ProjectedSales). Ponieważ wartości te są generowane przez Database Engine Podczas wykonywania operacji wstawiania żadna z tych kolumn nie mogą być definiowane w @MyTableVar.

C.Wstawianie danych zwróconych przez klauzulę wyjście

W poniższym przykładzie przechwytuje dane zwrócone z klauzula wyjście instrukcja korespondencji SERYJNEJ i wstawia dane do innej tabela.Aktualizacje instrukcja korespondencji SERYJNEJ Quantity Kolumna ProductInventory Tabela codziennie, na podstawie zamówienia, które są przetwarzane w SalesOrderDetail Tabela. Powoduje usunięcie wierszy dla produktów, których zapasy upuść na 0.W przykładzie przechwytuje wiersze, które są usuwane i wstawia je do innej tabela ZeroInventory, który śledzi produktów nie zapasów.