Aracılığıyla paylaş


Örnekler (Transact-SQL) INSERT

Bu konu, kullanım örnekleri sağlar EKLEME deyim.Örnek aşağıdaki kategorilerde gruplandırılmıştır.

Kategori

Özel sözdizimi öğeleri

Temel sözdizimi

• Tablo değeri kurucu INSERT

Sütun değerleri işleme

• Kullanıcı tanımlı türler IDENTITY • NEWID • varsayılan değerleri

Diğer bir tablodan veri ekleme

Sık kullanılan tablo ifade • TOP WITH INSERT…SELECT • INSERT…yürütmek •

Hedef nesne standart tablolar dışındaki belirtme

Görünümler • tablo değişkenleri

Satırlar uzaktan ekleme tablo

Bağlantılı sunucu • OPENQUERY satır kümesi kümesi işlev • OPENDATASOURCE satır kümesi kümesi işlev

Tablo veya veri dosyalarındaki verileri yükleme toplu

openrowset insert…select • işlev

Ipuçlarını kullanarak, sorgu iyileştiricisi varsayılan davranışını geçersiz kılma

Tablo ipuçları

INSERT deyim sonuçlarını yakalanıyor

OUTPUT yan tümce

Temel sözdizimi

Bu bölümdeki örnekler, gerekli en az sözdizimi kullanan bir INSERT deyim temel işlevselliğini göstermektedir.

C.Tek bir veri satırı ekleme

Aşağıdaki örnek, bir satır içine ekler Production.UnitMeasure TABLO. Bu sütun tablo olan UnitMeasureCode, Name, ve ModifiedDate. Tüm sütunlar için değer verilir ve sütunlarda aynı sırada listelenen tablo, sütun adları sütun listesi belirtilmesi gerekmez.

b.Birden çok veri satırı ekleme

Aşağıdaki örnek Tablo değeri Oluşturucu üç satır eklemek içinProduction.UnitMeasure tek bir INSERT deyim tablo. Tüm sütunlar için değer verilir ve sütunlarda aynı sırada listelenen tablo, sütun adları sütun listesi belirtilmesi gerekmez.

c.Tablo sütunları aynı sırada olmayan veri ekleme

Aşağıdaki örnek, bir sütun listesi açıkça her sütuna eklenen değerleri belirtmek için kullanır.Sütun sırasını Production.UnitMeasure Tablo UnitMeasureCode, Name, ModifiedDate; Ancak sütunlarını bu sırayla listelenmiyor column_list.

Sütun değerleri işleme

Bu bölümdeki örnekler bir IDENTITY özellik ile tanımlanan, değer DEFAULT veya gibi veri türleriyle tanımlanmış sütun değerleri ekleme yöntemleri gösterilmektedir. uniqueidentifer veya kullanıcı tanımlı tür sütunlarındaki.

C.Veri ekleme bir tablo varsayılan değerlerine sahip sütunlarla

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.Bu sütun için bir değer belirtilmişse, NULL eklenir.INSERT deyimleri, bazı sütunların tümünü değil fakat için değerler içeren bir satır ekleyin.Son INSERT deyiminde belirtilen sütun yok ve yalnızca varsayılan değerler, DEFAULT VALUES yan tümce kullanarak eklenir.

b.Bir kimlik ile bir tabloya veri ekleme sütun

Aşağıdaki örnek, farklı kimlik sütun veri ekleme yöntemleri gösterir.Ilk iki INSERT deyimleri, kimlik değerleri için yeni satırların oluşturulmasına izin verir.Üçüncü bir INSERT deyim küme ıdentıty_ınsert Ekstresi ile sütun için bir KIMLIK özellik geçersiz kılar ve kimlik sütunu açık olan bir değer ekler.

c.NEWID() kullanarak, bir sütuna uniqueidentifier veri ekleme

Aşağıdaki örnek newidiçin bir GUID edinme () işlev column_2. Farklı kimlik sütunlarının, Database Engine değerleri içeren sütunlar için otomatik olarak oluşturmuyor uniqueidentifier gösterilen tarafından ikinci veri türüINSERT deyim.

d.Kullanıcı tanımlı tür sütunlara veri ekleme

Aşağıdaki Transact-SQL ifadeleri, üç satır içine ekleme PointValue sütun Points TABLO. Bu sütun kullanan bir CLR kullanıcı tanımlı türü (udt).The Point data type consists of X and Y integer values that are exposed as properties of the UDT.Virgülle ayrılmış, atama için CONVERT veya CAST işlevini kullanın X ve Y değerleri için Point TYPE. Ilk iki deyim, bir dize değerine dönüştürmek için CONVERT işlevini kullanın. Point tür ve üçüncü deyim CAST işlev kullanır. Daha fazla bilgi için bkz: UDT veri işleme.

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

Diğer tablolar veri ekleme

Bu bölümdeki örnekler satır birinden ekleme yöntemleri gösteren tablo içine başka tablo.

C.Diğer bir tablodan veri eklemek için SELECT ve yürütmek Seçenekleri'ni kullanma

Aşağıdaki örnek, bir veri eklemek gösterilmiştir tablo içine başka tablo INSERT…SELECT veya INSERT…yürütmek kullanarak.Her sütun listesinden bir ifade ve hazır bilgi değeri içeren çok tablolu bir SELECT ifade dayanır.

Kaynak tabloları (verileri türetmek için bir deyim ilk INSERT deyim kullanır...Employee, SalesPerson, ve Contact) ve sonuç kümesinde EmployeeSales TABLO. deyim içeren bir saklı yordamını çağırmak için yürütmek yan tümce ikinci bir INSERT deyim kullanır ve SELECT deyiminin hazır bilgi dizesi olarak başvurmak için yürütmek yan tümce üçüncü INSERT kullanır.

b.Eklenen verileri tanımlamak için ortak tablo ifade kullanma

Aşağıdaki örnek oluşturur NewEmployee TABLO. Ortak bir tablo ifade (EmployeeTemp) içine eklenecek bir veya daha fazla tablodan satır tanımlayan NewEmployee TABLO. INSERT ifade ortak tablo deyimdeki sütunların başvuruyor.

c.Kaynak eklenen verileri sınırlamak için TOP kullanarak tablo

Aşağıdaki örnek ÜST yan tümce içinde eklenen satır sayısını sınırlamak içinNewEmployee gelen tablo Employee TABLO. Örnekte ilk adres verilerini ekler rasgele küme 10 çalışanlardan biri Employee tabloya. SELECT deyim içeriğini doğrulamak için sonra yürütülen NewEmployee TABLO.

Hedef nesne standart tablolar dışındaki belirtme

Bu bölümdeki örnekler, bir görünüm veya tablo değişkeni belirterek bir satır eklemek nasıl göstermektedir.

C.Bir görünümü belirterek veri ekleme

Aşağıdaki örnek, bir görünüm adı hedef nesnesini belirtir; ancak, temel bankasında yeni bir satır eklenir tablo.Değerlerin sırasını INSERT deyim, görünümün sütun sırasını eşleşmesi gerekir. Daha fazla bilgi için bkz: Bir görünümü kullanarak verileri değiştirme.

b.Bir tablo değişkeni veri ekleme

Aşağıdaki örnek, hedef nesne olarak bir tablo değişkeni belirtir.

Bir uzak tablo içinde satır ekleme

Bu bölümdeki örnekler kullanarak, uzak hedef tabloya satır eklemek nasıl gösteren bir bağlantılı sunucu or a satır kümesi işlev uzak tablo başvuracak biçimde.

C.Veri ekleme bir uzak tablo kullanarak bir bağlantılı sunucu

Aşağıdaki örnek, satırlara ekler bir uzak tablo.Bu örnek, uzak verilerine bir bağlantı oluşturarak başlar kaynak kullanarak sp_addlinkedserver.Bağlantılı sunucu adı MyLinkServer, ardından formunda four-part nesne adının bir parçası olarak belirtilir Server.Catalog.Schema.Object.

b.Veri ekleme bir uzak tablo OPENQUERY işlevini kullanarak

Aşağıdaki örnek, satır kümesi kümesi içine ekler bir uzak tablo belirterek openquery satır kümesi kümesi işlev.Bu örnekte, önceki örnekte oluşturulmuş bağlantılı sunucu adı kullanılır.

c.Veri ekleme bir uzak tablo OPENDATASOURCE işlev kullanılarak

Aşağıdaki örnek uzak ekler tablo belirterek opendatasource satır kümesi kümesi işlev.Geçerli bir sunucu adı veri kaynağının biçimi kullanarak belirtin. Sunucu_adı or server_name\instance_name.

Toplu veri tabloları veya veri dosyaları yükleniyor

Bu bölümdeki örnekler iki yöntem, yük verileri toplu olarak gösteren bir tablo INSERT deyim kullanarak.

C.En az bir günlük kaydı ile yığın veri ekleme

Aşağıdaki örnek oluşturur bir bir yeni bir tablo (yığın) ve en az bir günlük kullanarak başka bir tabloya veri ekler.Bu örnek, varsayar kurtarma modeli, AdventureWorks Veritabanı FULL için küme. En az bir günlük olduğundan emin olmak için kurtarma modeli, kullanılan AdventureWorks satır eklenir ve sonra INTO…SELECT INSERT deyim için FULL sıfırlamak için önce veritabanı BULK_LOGGED için küme. Buna ek olarak, TABLOCK ipucu için hedef belirtilen tablo Sales.SalesHistory. Bu deyim, işlem günlüğünün en az alan kullanır ve verimli bir şekilde gerçekleştirir sağlar.

b.Toplu yükleme verileri ile BULK OPENROWSET işlevini kullanarak bir tablo

Aşağıdaki örnek, bir veri dosyasından satır ekler bir tablo OPENROWSET işlevini belirterek.Performansı en iyi duruma getirmek için ıgnore_trıggers tablo ipucu belirtildi.Daha fazla örnek için bkz: BULK INSERT veya OPENROWSET(BULK...) kullanarak toplu veri alınıyor.

Ipuçlarını kullanarak, sorgu iyileştiricisi varsayılan davranışını geçersiz kılma

Bu bölümdeki örnekler nasıl kullanıldığını göstermektedir. Tablo ipuçları INSERT işlerken geçici olarak sorgu iyileştiricisi varsayılan davranışı geçersiz kılmak için deyim.

Uyarı

Çünkü SQL Server sorgu iyileştiricisi, genellikle bir sorgu için en iyi yürütme planı seçer, ipuçları yalnızca son çare olarak deneyimli geliştiriciler ve Veritabanı yöneticileri tarafından kullanılması önerilir.

C.Bir kilitleme yöntem belirtmek için TABLOCK ipucu kullanma

Aşağıdaki örnek, bir Özel (X) kilit üzerinde Production.Location alınır belirtir tablo ve INSERT deyim sonuna kadar tutuluyor.

INSERT sonuçlarını yakalama deyim

Bu bölümdeki örnekler nasıl kullanıldığını göstermektedir OUTPUT yan tümce dönmek için bilgileri veya ifadelerini temel alan bir INSERT deyim tarafından etkilenen her bir satır.Bu sonuçlar onay iletileri, arşivleme ve diğer tür uygulama gereksinimleri kullanmak için işleme uygulamasına geri gönderilebilir.

C.OUTPUT bir INSERT deyim ile kullanma

Aşağıdaki örnek, bir satır içine ekler ScrapReason Tablo ve kullanımları OUTPUT Beyannameyi sonuçlarını dönmek için yan tümce @MyTableVar Tablo değişkeni. Çünkü ScrapReasonID sütun ile tanımlanmış bir IDENTITY özellik, içinde bir değer belirtilmemiş INSERT Bu sütun için deyim. Ancak, değeri tarafından oluşturulan Not Database Engine iade o sütun için OUTPUT yan tümcesinde INSERTED.ScrapReasonID sütun.

b.OUTPUT kullanarak kimlik ve hesaplanan sütunlar

Aşağıdaki örnek oluşturur EmployeeSales Tablo ve kaynak tablodan veri almak için bir deyim ile bir INSERT deyim kullanarak içine birden çok satır ekler. The EmployeeSales tablo contains an kimlik sütunu (EmployeeID) and a hesaplanan sütun (ProjectedSales). Çünkü, bu değerler tarafından oluşturulan Database Engine ekleme işlemi sırasında bu sütunların hiçbiri tanımlanabilir @MyTableVar.

c.Veri ekleme, bir OUTPUT yan tümce döndürdü

Aşağıdaki örnek, BIRLEŞTIRME bir deyim OUTPUT yan tümce döndürülen verileri yakalar ve bu verileri diğerinin içine ekler tablo.BIRLEŞTIRME deyim güncelleştirmeleri Quantity sütun ProductInventory Günlük, işlenir siparişleri temel alınarak tablo SalesOrderDetail TABLO. Ayrıca, ürünleri için 0, stokları bırak satırları siler.Örnek silinir ve bunları başka bir tabloya ekler satır yakalar. ZeroInventory, hangi ürünleri ile hiçbir stok izler.