INSERT (Transact-SQL)

Bir tablo veya görünümde bir veya daha fazla yeni satırlar ekler SQL Server 2008 R2.Örnekler için, bkz. Örnekler (Transact-SQL) Ekle.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

-- Standard INSERT syntax
[ WITH <common_table_expression> [ ,...n ] ]
INSERT 
{
        [ TOP ( expression ) [ PERCENT ] ] 
        [ INTO ] 
        { <object> | rowset_function_limited 
          [ WITH ( <Table_Hint_Limited> [ ...n ] ) ] }
    {
        [ ( column_list ) ] 
        [ <OUTPUT Clause> ]
        { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ] 
          | derived_table 
          | execute_statement
          | <dml_table_source>
          | DEFAULT VALUES 
        }
    }
}
[; ]

-- External tool only syntax
INSERT 
{
    [BULK]
    [ database_name . [ schema_name ] . | schema_name . ]
    [ table_name | view_name ]
    ( <column_definition> )
    [ WITH (
        [ [ , ] CHECK_CONSTRAINTS ]
        [ [ , ] FIRE_TRIGGERS ]
        [ [ , ] KEEP_NULLS ]
        [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
        [ [ , ] ROWS_PER_BATCH = rows_per_batch ]
        [ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
        [ [ , ] TABLOCK ]
           ) ]
}
[; ]

<object> ::=
{ 
    [ server_name . database_name . schema_name . 
      | database_name .[ schema_name ] . 
      | schema_name . 
    ]
  table_or_view_name
}

<dml_table_source> ::=
    SELECT <select_list>
    FROM ( <dml_statement_with_output_clause> ) 
      [AS] table_alias [ ( column_alias [ ,...n ] ) ]
    [ WHERE <search_condition> ]
        [ OPTION ( <query_hint> [ ,...n ] ) ]

<column_definition> ::=
 column_name <data_type>
    [ COLLATE collation_name ]
    [ NULL | NOT NULL ]

<data type> ::= 
[ type_schema_name . ] type_name 
    [ ( precision [ , scale ] | max ]

Bağımsız değişkenler

  • İLE <common_table_expression>
    sonuç kümesiadlı geçici belirtir olarak da bilinen ortak tabloifade, tanımlanan kapsam ekleme deyimiçinde. sonuç kümesi , bir select deyimtüretilir.

    Ortak tablo ifadeleri seçin, delete, update, birleştirme ve create VIEW deyimleri ile de kullanılabilir.Daha fazla bilgi için, bkz. Common_table_expression (Transact-SQL) ile.

  • TOP (expression) [ PERCENT ]
    Sayı veya eklenecek rasgele satırların yüzdesini belirtir.expressionbir sayı veya satırları yüzdesi olabilir.INSERT, update ile kullanılan veya SİLDİĞİNİZ satırları üst ifade içinde başvurulan herhangi bir sırada düzenlenmiş değil.

    Sınırlayan parantez expression üst içinde gerekli olan, INSERT, update ve delete deyimlerini.Daha fazla bilgi için, bkz. ÜST (Transact-SQL).

  • İÇİNE
    INSERT ve hedef tabloarasında kullanılan isteğe bağlı bir anahtar sözcüktür.

  • server_name
    tablo ya da görünümün bulunduğu bağlantılı sunucu adıdır.server_name olarak belirtilen bir bağlantılı sunucu adına veya kullanarak opendatasource işlev.

    Zaman server_name bir bağlantılı sunucuolarak belirtilen database_name ve schema_name gereklidir.server_name , opendatasource ile belirtilen database_name ve schema_name tüm veri kaynaklarına uygulanmayabilir ve ole DBsağlayıcı , erişir yeteneklerini tabi olduğu uzak nesne.Daha fazla bilgi için, bkz. Dağıtılmış sorgular.

  • database_name
    Veritabanının adıdır.

  • schema_name
    tablo ya da görünümün ait olduğu şema addır.

  • table_or view_name
    tablo veya veri almak için görünümü adıdır.

    A tablo , kapsamiçinde değişken bir INSERT deyim tablokaynak olarak kullanılabilir.

    Görünüm tarafından başvurulan table_or_view_name gerekir güncellenebilir ve başvuru tam olarak temel tablo from yan tümce görünüm.Örneğin, gelsin bir multi -tablo INSERT kullanmalısınız bir column_list , yalnızca sütunları bir temel tablobaşvuruyor.Güncelleştirilebilir görünümler hakkında daha fazla bilgi için bkz: CREATE VIEW (Transact-SQL).

  • rowset_function_limited
    Ya SORGUAÇ veya openrowset işlev.Bu işlevler uzak nesne erişen ole DB sağlayıcı yeteneklerini tabi kullanılır.Daha fazla bilgi için, bkz. Dağıtılmış sorgular.

  • İLE ()<table_hint_limited> [... n ] )
    hedeftabloiçin izin verilen bir veya daha çok tablo ipuçlarını belirtir. WITH anahtar sözcük ve ayraçlar gereklidir.

    readpast, nolock ve READUNCOMMITTED izin verilmez.tablo ipuçları hakkında daha fazla bilgi için bkz: Tablo İpuçları (Transact-SQL).

    Önemli notÖnemli

    INSERT deyimleri hedef tablolar üzerinde holdlock, SERIALIZABLE READCOMMITTED repeatableread veya updlock ipuçları belirtme olanağı, gelecekteki bir sürüm kaldırılacak SQL Server.Bu ipuçları INSERT deyimleri performansı etkilemez.Bunları yeni geliştirme çalışması kullanmaktan kaçının ve bunları kullanan uygulamaları değiştirmek plan.

    INSERT deyim hedef tablo tablock ipucu belirtme tablockx ipucu belirtme aynı etkiye sahiptir.özel kullanım kilidi bir tabloalınır.

  • (column_list)
    Verileri eklemek istediğiniz bir veya daha fazla sütun listesidir.column_listayraç içinde ve virgülle ayrılmış.

    Bir sütun içinde değilse, column_list, Veritabanı Altyapısı sütun; tanımına göre bir değer sağlamak için olmalıdır Aksi durumda, satır yüklenemiyor.Veritabanı Altyapısı Otomatik olarak bir değer ' % s'sütun sütun için sağlar sütun:

    • KİMLİK özellikvardır.Sonraki artımlı kimlik değeri kullanılır.

    • Varsayılan vardır.sütun için varsayılan değer kullanılır.

    • Olan bir timestamp veri türü.Geçerli bir zaman damgası değeri kullanılır.

    • NULL olur.null değeri kullanılır.

    • Hesaplanmış bir sütunvar.Hesaplanan değeri kullanılır.

    column_listve açık değerler bir kimlik sütuneklenir ve set IDENTITY_INSERT seçeneği ' % s'tablo tabloiçin açık olmalı bir değerler listesi kullanılmalıdır.

  • output yan tümcesi
    Verir satır ekleme işlemi bir parçası olarak eklenir.sonuçlar işleme uygulamasına geri veya bir tablo veya tablo değişkeni sonraki işlemler için eklenen.

    output yan tümce yerel bölümlenmiş görünümler, dağıtılmış bölümlenmiş görünümler veya uzak tabloları başvuru DML deyimlerini veya içeren INSERT deyimleri desteklemediği bir execute_statement.output INTO yan tümce içeren INSERT deyimlerinde desteklenmeyen bir <dml_table_source> yan tümce.

  • VALUES
    Liste veya eklenecek veri değerlerinin listesi sunar.Her sütun için bir veri değeri olmalıdır column_list, belirtildiği takdirde veya tablo.Değer listesi, parantez içine alınmalıdır.

    Değer listesindeki değerleri olmayan, aynı sipariş tablo sütunlar veya her sütun için bir değer tablo, yoksa column_list sütun , depolar'açıkça belirtmek için kullanılmalıdırgelen her değer.

    Kullanabileceğiniz Transact-SQL ( tablo değeri Oluşturucu olarak da bilinir) kurucu satır birden çok satır içinde tek bir INSERT deyimbelirtmek için.Satır yapıcı bir tek değerleri yan tümce ayraç içinde ve virgülle ayrılmış birden çok değer listeleri ile oluşur.Daha fazla bilgi için, bkz. Tablo değeri Oluşturucu (Transact-SQL).

  • VARSAYILAN
    Güçleri Veritabanı Altyapısı bir sütuniçin tanımlanan varsayılan değer yüklemek için.null varsayılan sütun yok ve sütun null değerlere izin verir, eklenir.İle tanımlanmış bir sütun timestamp veri türü, sonraki zaman damgası değeri eklenir.Varsayılan kimlik sütuniçin geçerli değil.

  • expression
    Bir sabit, değişken veya ifadeedilir.ifade bir execute deyimiçeremez.

    Unicode karakter veri türlerini başvururken nchar, nvarchar, ve ntext, 'ifade' büyük harfle öneki 'n'.Yoksa 'n' belirtilmezse, SQL Server bir kod sayfası varsayılan harmanlama veritabanı veya sütuniçin karşılık gelen dize dönüştürür.Bu kod sayfası bulunmayan herhangi bir karakter kaybolur. Daha fazla bilgi için bkz: Unicode ile sunucu tarafı programlama.

  • derived_table
    tabloyüklenecek veri satırları döndüren geçerli her select deyim olur.select deyim , bir ortak tablo ifade (cte) içeremez.

  • execute_statement
    SEÇİN veya readtext deyimi ile veri döndüren herhangi geçerli execute deyim olur.

    execute_statement Kullanılan her sonuç kümesi INSERT ile sütunları tablo veya de uyumlu olmalıdır column_list.

    execute_statementaynı sunucuda veya uzak bir sunucuya yordamlar depolanan yürütmek için kullanılabilir.Uzak sunucu yordamda yürütülen ve sonuç kümelerini yerel sunucuya döndü ve ' % s'tabloya tablo yerel sunucuda yüklü.dağıtılmış işlem execute_statement karşı bir geri döngü bağlantılı sunucu bağlantı etkin birden çok etkin sonuç kümeleri (mars) sahip olduğunda verilemez.

    execute_statement Verileri döndürür readtext deyimile en fazla 1 mb (1024 kb) veri her readtext deyim döndürebilirexecute_statementGenişletilmiş yordamlar ile de kullanılabilir.execute_statementAna iş parçacığı genişletilmiş yordam tarafından döndürülen verileri ekler; Ancak, ana iş parçacığı dışındaki diğer iş parçacıklarını çıktısı eklenmiyor.

    Bir tablobelirtemezsiniz-valued parametre Ekle exec deyim; hedef olarak Ancak, bir ' % s'kaynağı kaynak Ekle exec dize veya saklı yordam olarak belirtilebilir.Daha fazla bilgi için, bkz. Tablo değerli Parametreler (veritabanı altyapısı).

  • <dml_table_source>
    hedeftablo eklenen satır output yan tümce INSERT, update, DELETE tarafından döndürülen dosyaları veya isteğe bağlı where yan tümcetarafından filtre deyim, birleştirme belirtir. <Dml_table_source> belirtilmişse, dış INSERT deyim hedef aşağıdaki kısıtlamalar uymalıdır:

    • Bu temel tablo, bir görünümü olmalıdır.

    • Bu uzak tabloolamaz.

    • Bunun üzerinde tanımlanan tüm tetikleyiciler olamaz.

    • Bunu tüm birincil anahtar-yabancı anahtar ilişkileri alamaz.

    • birleştirme çoğaltması veya işlem çoğaltmaiçin güncelleştirilebilir abonelikleri alamaz.

    Veritabanı Uyumluluk düzey küme için 100 veya daha yüksek olmalıdır.Daha fazla bilgi için, bkz. output yan tümcesi (Transact-SQL).

  • <select_list>
    Sütunları eklemek için output yan tümce tarafından döndürülen belirten bir virgülle ayrılmış listesi.Sütun <select_list> değerler takılabileceği sütunlarla uyumlu olması gerekir.<select_list> toplu işlevleri veya textptr başvuru yapamazsınız.

    Not

    select listesinde listelenen tüm değişkenler ne olursa olsun, onlara yapılan değişiklikler özgün değerlerine bakın <dml_statement_with_output_clause>.

  • <dml_statement_with_output_clause>
    Geçerli bir INSERT, update, Sil veya deyim döndürür output yan tümcesatırları etkilenen BİRLEŞTİREBİLİRSİNİZ.deyim WITH yan tümceiçeremez ve hedef uzak tabloları veya bölümlenmiş görünümler olamaz.update veya delete belirtilirse, bir imleçolamaz-update veya delete dayalı.Kaynak satırları iç içe DML deyimlerini başvurulamaz.

  • Burada <search_condition>
    Olduğu her yerde yan tümce içeren geçerli bir <search_condition> tarafından döndürülen satır filtreleri <dml_statement_with_output_clause>.Daha fazla bilgi için, bkz. Arama koşulu (Transact-SQL).Bu bağlamda kullanıldığında <search_condition> alt sorgular, veri erişimi gerçekleştirmek skaler kullanıcı tanımlı işlevler, toplu işlevleri, textptr veya tam metin araması yüklemler içeremez.

  • VARSAYILAN DEĞERLER
    Zorlar her sütuniçin varsayılan değerleri içeren yeni bir satır tanımlı.

  • BULK
    İkili veri akışı karşıya yüklemek için dış araçları tarafından kullanılır.Bu seçenek araçlarıyla birlikte kullanmaya gibi tasarlanmamıştır SQL Server Management Studio, sqlcmd, osql ya da veri erişim uygulama programlama arabirimleri gibi SQL Server yerel istemci.

  • FIRE_TRIGGERS
    Tüm ikili veri akışı karşıya yükleme işlemi sırasında hedef tablo yürütmek üzerinde tanımlı tetikleyiciler ekleme belirtir.Daha fazla bilgi için, bkz. BULK INSERT (Transact-SQL).

  • CHECK_CONSTRAINTS
    hedeftablo veya görünüm tüm kısıtlamalar ikili veri akışı karşıya yükleme işlemi sırasında denetlenmeli belirtir. Daha fazla bilgi için, bkz. BULK INSERT (Transact-SQL).

  • KEEPNULLS
    Boş sütunlar null değeri ikili veri akışı karşıya yükleme işlemi sırasında korumak olduğunu belirtir.Daha fazla bilgi için, bkz. Boş değerlere tutma veya toplu almayı sırasında varsayılan değerleri kullanma.

  • KILOBYTES_PER_BATCH = kilobytes_per_batch
    Kilobayt (kb) veri toplu iş başına yaklaşık sayısını belirtir kilobytes_per_batch.Daha fazla bilgi için, bkz. BULK INSERT (Transact-SQL).

  • rows_per_batch =rows_per_batch
    İkili veri akışı veri satırları yaklaşık sayısını gösterir.Daha fazla bilgi için, bkz. BULK INSERT (Transact-SQL).

    Not sütun listesi girilmediği takdirde sözdizimi hatası ortaya çıkar.

En iyi yöntemler

istemcieklenen satır sayısını döndürmek için @@ rowcount işlev kullanın.Daha fazla bilgi için, bkz. @@ rowcount (Transact-SQL).

Toplu veri alma için en iyi yöntemler

INSERT INTO… kullanmaMinimal günlüğü ile Veri Al toplu için seçin

INSERT INTO kullanabilirsiniz <target_table> seçin <sütunlar> from <source_table> verimli bir sayýda satýr hazırlama tablogibi bir tablobaşka bir tablo minimal günlüğü ile aktarmak için.Minimal günlüğü deyim performansını ve hareket sırasında kullanılabilir hareket günlük alanı doldurma işlemi olasılığını azaltır.

Bunun için günlük en az deyim aşağıdaki gereksinimleri vardır:

  • Veritabanı kurtarma modelini küme veya bulk-logged ' dir.

  • hedeftablo boş veya boş olmayan bir yığın oluşur.

  • hedeftablo çoğaltmakullanılmaz.

  • hedeftablotablock ipucu belirtildi.

Bir yığın birleştirme deyim INSERT eylem sonucu olarak eklenen satırlar da en az kaydedilebilir.

Daha az kısıtlayıcı toplu güncelleştirme kilit, Ekle INTO… tutan bulk INSERT deyimselect tablock ipucu ile özel (x) kilit ' % s'tablo tabloüzerinde tutar.Yani, paralel INSERT işlemlerini kullanarak satır ekleyemezsiniz.Kilitleri hakkında daha fazla bilgi için bkz: Kilit modları.

openrowset ve toplu Veri Al toplu için kullanma

openrowset işlev INSERT deyimile bulk load iyileştirmeleri sağlamak aşağıdaki tablo ipuçlarını kabul edebilir:

  • tablock ipucu INSERT işlemi için günlük kayıtları sayısı en aza indirebilirsiniz.Veritabanı kurtarma modelini basit ya da bulk-logged küme olmalı ve hedef tablo çoğaltmakullanılamaz.Daha fazla bilgi için, bkz. Toplu alma Minimal günlüğü için Önkoşullar.

  • IGNORE_CONSTRAINTS ipucu geçici olarak yabancı anahtar ve onay kısıtlaması denetimini devre dışı bırakabilirsiniz.

  • IGNORE_TRIGGERS ipucu tetikleyici yürütme geçici olarak devre dışı bırakabilirsiniz.

  • keepdefaults ipucu varsa, veri kaydı olmadığında sütuniçin bir değer null yerine tablosütunvarsayılan değer ekleme izin verir.

  • hedeftablokimlik sütun için kullanılmak üzere alınan veri dosyasındaki kimlik değerleri KEEPIDENTITY ipucu verir.

Bu en iyi duruma getirme bulk INSERT komutu ile benzerdir.Daha fazla bilgi için, bkz. Tablo İpuçları (Transact-SQL).

Veri Türleri

Satır eklediğinizde, aşağıdaki veri türü davranışını dikkate alın:

  • Bir değer içeren sütunlar halinde yükleniyor, bir char, varchar, veya varbinary veri türü, doldurma veya boşluklarla, kesme (için dizer char ve varchar, sıfır için varbinary) tablo oluşturulduğunda ' % s'sütun sütun için tanımlanan set ANSI_PADDING ayarı tarafından belirlenir.Daha fazla bilgi için, bkz. set ANSI_PADDING (Transact-SQL).

    Aşağıdaki tablo set ANSI_PADDING off varsayılan işlemini gösterir.

    Veri türü

    Varsayılan işlem

    char

    sütuniçin tanımlanmış genişlik boşluklu Pad değeri.

    varchar

    Kaldırma sondaki yerleştirir son boşluk olmayan karakter ya da bir karakter için yalnızca boşluklardan oluşan dizeler tek aralık.

    varbinary

    Ardarda sıfırları kaldırın.

  • Boş bir dize ise (' bir ' % s'sütununa sütun ile ') yüklü bir varchar veya text veri türü, varsayılan işlem olan bir sıfır uzunluklu dizeyüklenemedi.

  • null bir değere ekleyerek bir text veya imagesütun geçerli metin imleci oluşturmak değil, ne de 8 KB'lık metin sayfaoluşturulacağından mu. Ekleme hakkında daha fazla bilgi için text ve image verileri, görmek Metin, ntext ve resim işlevler kullanma.

  • İle oluşturulan sütunlar uniqueidentifier veri türü depolamak özel olarak biçimlendirilmiş 16 bayt ikili değerler.Aksine IDENTITY sütunları ile Veritabanı Altyapısı içeren sütunlar için değerleri otomatik olarak oluşturmaz uniqueidentifier veri türü.Ekleme işlemi sırasında değişken veri türü uniqueidentifier ve dize sabitleri formunda xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (tire dahil 36 karakter nerede x aralık 0-9 veya a-f onaltılı basamak olan) için kullanılan uniqueidentifier sütunlar.Örneğin, 6F9619FF-8B86-D011-B42D-00C04FC964FF için geçerli bir değer olup bir uniqueidentifier değişken veya sütun.Use NEWID()genel benzersiz Kimliğini (GUID) elde etmek içinişlev .

Kullanıcı tanımlı tür sütunlara değer ekleme

kullanıcı tanımlı tür sütun değerleri ekleyebilirsiniz:

  • kullanıcı tanımlı türdeğerini sağlama.

  • Bir değer sağlayan bir SQL Server Sistem veri türü olarak kullanıcı tanımlı tür destekler örtülü veya açık dönüştürme o türü.Aşağıdaki örnek, bir sütun kullanıcı tanımlı türbir değer eklemek gösterilmiştir Point, açıkça bir dizedönüştürerek.

    INSERT INTO Cities (Location)
    VALUES ( CONVERT(Point, '12.3:46.2') );
    

    Tüm kullanıcı tanımlı türler ikili örtük olarak dönüştürülebilir, çünkü ikili değer açık dönüştürme yapmadan da sağlanabilir.Dönüştürme ve kullanıcı tanımlı türler hakkında daha fazla bilgi için bkz: Kullanıcı tanımlı türler üzerinde işlemleri gerçekleştirme.

  • Kullanıcı tanımlı bir işlev çağırarak, kullanıcı tanımlı türbir değer döndürür.Aşağıdaki örnek, kullanıcı tanımlı bir işlevkullanırCreateNewPoint() kullanıcı tanımlı türiçin yeni bir değer oluşturmak için Point ve içine değer Ekle Citiestablo.

    INSERT INTO Cities (Location)
    VALUES ( dbo.CreateNewPoint(x, y) );
    

Hata işleme

Size hata işleme için INSERT deyim içinde bir try… deyim belirterek uygulayabilirsinizcatch yapı.Daha fazla bilgi için, bkz. İşlemek için try...Transact-SQL'de catch.

INSERT deyim kısıtlaması veya kuralı ihlal ediyor veya sütunveri türüyle uyumlu olmayan bir değer varsa, deyim başarısız olur ve bir hata iletisi döndürülür.

INSERT yüklüyor seçin ya da execute, herhangi bir kuralı ihlal çoklu satırları veya yüklenmesini değerlerden oluşan bir kısıtlama durdurulması deyim neden olur ve hiçbir satır yüklenir.

INSERT, deyim (taşma, sıfır ya da bir etki alanı hata bölme) aritmetik hata karşılaştığında ifade değerlendirme sırasında gerçekleşen Veritabanı Altyapısı Bu hataları işleme gibi ise set ARITHABORT küme için on.toplu iş durduruldu ve bir hata iletisi döndürülür.set ARITHABORT ve set ANSI_WARNINGS kapalı, INSERT, zaman ifade değerlendirme sırasında delete veya update deyim bir aritmetik hata, taşma, bölme sıfır veya bir etki alanı hata karşılaştığında SQL Server ekler veya güncelleştiren bir null değeri.hedefsütun null değilse, INSERT veya update eylem başarısız olur ve kullanıcı bir hata alır. Daha fazla bilgi için, bkz. ARITHABORT ve ARITHIGNORE on ayarladığınızda davranışı.

Birlikte çalışabilirlik

Tetikleyici INSERT eylemleri karşı bir tablo ya da görünüm üzerinde bir INSTEAD of tetikleyicisi tanımladığınızda yerine INSERT deyimyürütür.Hakkında Tetikleyiciler yerine daha fazla bilgi için bkz: CREATE TRIGGER (Transact-SQL).

Sınırlamalar ve kısıtlamalar

Uzak tablolarına değerler eklemek ve tüm sütunlar için tüm değerleri belirtilen belirtilen değerleri eklenecek olan sütunlar tanımlamanız gerekir.

set rowcount seçeneği ayar, yerel ve uzak bölümlendirilmiş görünümlerde karşı INSERT deyimleri için yoksayılır.Ayrıca, bu seçenek uzak tabloları karşı verilen INSERT deyimleri için desteklenmiyor.

Önemli notÖnemli

set rowcount kullanarak etkilemez delete, INSERT ve update deyimleri gelecekte de SQL Server.Değil yeni geliştirme çalışmaları, Sil, Ekle ve güncelleştir deyimleri ile set rowcount kullanın ve şu anda kullanan uygulamaları değiştirmek plan.Bunun yerine üst yan tümce kullanmanız önerilir.

Kilitleme davranışı

INSERT deyim değiştirir ve hareket tamamlanıncaya kadar bu kilit tutan tablo özel (x) kilit her zaman alır.Bir özel (x) kilitile herhangi bir hareket verileri değiştirebilirsiniz; işlemleri yalnızca nolock ipucunu kullanımı ile gerçekleşmesi veya kaydedilmemiş yalıtım düzeyiokuma okuyun.Daha fazla bilgi için, bkz. Veritabanı Altyapısı'nda kilitleme.

Günlüğe kaydetme davranışını

INSERT deyim dışında openrowset işlev bulk anahtar sözcüğüyle veya INSERT INTO kullanırken kullanırken her zaman tam olarak kaydedilir <target_table> seçin <sütunlar> from <source_table>.Bu işlemler en az kaydedilebilir.Daha fazla bilgi için "En iyi yöntemler için toplu yükleme verileri" bölümüne bakın Bu konunun önceki kısımlarında.

Güvenlik

bağlantılı sunucu bağlantı sırasında gönderen sunucu oturum açma adı ve kendi adına alıcı sunucuya bağlanmak için parola sağlar.Bu bağlantının çalışması için bir oturum açma eşleme kullanarak bağlantılı sunucular arasında oluşturmalısınız KullanımıEXEC sp_addlinkedsrvlogin.Daha fazla bilgi için, bkz. Bağlantılı sunucular için güvenliği.

openrowset(bulk…) kullandığınızda, bunu anlamak önemlidir nasıl SQL Server tutamaçları kimliğe bürünme.Daha fazla bilgi için bkz: "Güvenlik değerlendirmeleri" in Toplu veri bulk INSERT veya openrowset(bulk...) kullanarak alma.

İzinler

hedeftabloINSERT izni gereklidir.

Üyeleri için varsayılan izinleri Ekle sysadmin sabit sunucu rolü, db_owner ve db_datawriter sabit veritabanı rolleri ve tablo sahibi.Üyeleri sysadmin, db_ownerve db_securityadmin rolleri ve tablo sahibi izinleri diğer kullanıcılara aktarma

yürütmek için INSERT openrowset işlev bulk seçeneği ile üye olmalıdır sysadminsabit sunucu rolü veya bulkadminsabit sunucu rolü.

Örnekler

Örnekler için, bkz. Örnekler (Transact-SQL) Ekle.