Share via


yan tümce (Transact-SQL)

SELECT…INTO varsayılan dosya grubu yeni bir tablo oluşturur ve elde edilen satırları sorgudan içine ekler.SELECT sözdizimini tümüyle görüntülemek için , bkz: SELECT (Transact-SQL).

Topic link iconTransact-SQL sözdizimi kuralları

[ INTO new_table ]

Bağımsız değişkenler

  • new_table
    Seçim listesi ve verileri seçilen satırları sütunlara göre oluşturulması için , yeni bir tablonun adını belirtir kaynak.

    Biçimi new_table Seçim listesi ifadelerinde değerlendirmek tarafından belirlenir. Sütunlar new_table Seçim listesi tarafından belirtilen sırayla oluşturulur. Her sütun new_table veri türünü, null atanabilirlik ve değeri aynı adı karşılık gelen ifade seçme listesinde var. sütun KIMLIK özellik dışındaki "Çalışma ile kimlik sütuna" tanımlanan koşullar altında uyarılar bölümünde transfer edilir.

    Aynı örnek üzerinde başka bir veritabanında tablo oluşturmak için SQL Server, belirtme new_table tam adı olarak formunda Database.Schema.table_name.

    Oluşturulamıyor. new_table bir uzak sunucuda; ancak, doldurabilirsiniz new_table bir uzak veri kaynak. Oluşturmak için new_table Uzak kaynak tablosundan, kaynak tablo four-part bir ad kullanarak belirtin. linked_server.Katalog.Schema.Nesne the FROM yan tümce deyim.Alternatif olarak, kullanabileceğiniz openquery işlev ya daopendata kaynak işlev uzak veri belirtmek için FROM yan tümcende kaynak.

Veri Türleri

Varolan kimlik sütunu yeni bir tablo seçildiğinde, aşağıdaki koşullardan biri doğru değilse, yeni bir sütun KIMLIK özellik, devralır:

  • deyim GROUP BY, birleştirme içeren yan tümce, veya işlev toplamak.

  • UNION kullanarak birden çok SELECT deyimi ile birleştirilir.

  • Birden fazla kimlik sütunnda listelenen saat listeden seçin.

  • Kimlik sütun ifade bir parçasıdır.

  • Kimlik sütun, bir uzak veri kaynağından ' dir.

Bu koşullardan biri doğruysa, sütun, KIMLIK özellik devralma yerine NOT NULL oluşturulur.Kimlik sütunu yeni gerekiyorsa tablo, ancak bir sütun kullanılamıyor veya bir çekirdek istediğiniz veya kaynak kimliği sütunu farklı bir değeri artırmak, IDENTITY işlevni kullanarak bir seçim listesinde sütun tanımlayın."Kimlik sütun IDENTITY işlevini kullanarak aşağıdaki örnekleri bölümü oluşturma" konusuna bakın.

Kısıtlamaları ve sınırlamaları

INTO yan tümcesinin, aşağıdaki kısıtlamaları ve sınırlamaları uygulayın:

  • Yeni bir tablo bir tablo değişkeni veya parametresi tablo değerli belirtemezsiniz.

  • Kaynak tablo bile bölümlendirilir bölümlenmiş tablo oluşturmak için SELECT…INTO kullanamazsınız.SELECT... INTO Kaynak tablosunun bölümleme düzeni kullanmaz; bunun yerine, varsayılan dosya grubu yeni bir tablo oluşturulur.Bölümlendirilmiş bir tabloya satır eklemek için , ilk bölümlenmiş tablo oluşturun ve sonra INSERT INTO... SELECT FROM deyimini kullanın.

  • hesaplanan sütun seçin dahil olduğunda, yeni karşılık gelen sütun listesi tablo hesaplanan sütun değil.Yeni sütunundaki değerler, SELECT... INTO çalıştırıldı anda hesaplanmış değerlerdir.

  • SELECT... INTO, birlikte kullanılamaz HESAPLAMA.

  • FILESTREAM öznitelik yeni tabloya aktarılmaz.FILESTREAM BLOB'lar kopyalanır ve yeni bir tablo depolanır. varbinary(max) BLOBs. FILESTREAM özniteliği olmadan varbinary(max) veri türü, 2 GB'ın bir kısıtlaması vardır. FILESTREAM bir BLOB bu değeri aşarsa, hata 7119 oluşturulur ve deyim durdu.

  • Yeni bir tablo için dizin, kısıtlamaları ve tetikleyiciler kaynak tablosunda tanımlanan transfer veya SELECT... INTO deyim belirtilebilir.Bu nesneler gerekliyse, SELECT... INTO deyim yürüttükten sonra bunları oluşturmanız gerekir.

  • ORDER BY yan tümce belirtme, satırları belirtilen sırada eklenir garanti etmez.

Günlüğe kaydetme davranışı

SELECT... INTO için günlüğe kaydetmeyi etkin veritabanı kurtarma modeli bağlıdır.basit kurtarma modeli veya toplu günlük kurtarma modeli altında toplu işlemler en az günlüğe kaydedilir.SELECT… kullanarak en az oturum ile deyim, tablo oluşturma ve sonra da içeren bir INSERT deyim tabloyu yerleştirmek daha etkili olabilir.Daha fazla bilgi için bkz: En az oturum işlemleri.

İzinler

Hedef veritabanındaki CREATE tablo iznine gerek duyar.

Örnekler

C.Birden çok kaynaktan sütun belirterek tablo oluşturma

Aşağıdaki örnek, tablo oluşturur. dbo.EmployeeAddresses çeşitli çalışan ile ilgili ve adres ilişkili tablolarından yedi sütun seçerek.

b.En az bir günlük kullanarak satır ekleme

Aşağıdaki örnek, tablo oluşturur. dbo.NewProducts ve satırlarını ekler Production.Product TABLO. 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 SELECT... INTO deyim için FULL sıfırlamak için önce veritabanı BULK_LOGGED için küme. Bu işlem, SELECT... INTO deyim en az bir işlem günlüğü alanında kullanılır ve verimli bir şekilde gerçekleştirir sağlar.

c.KIMLIĞI'ni kullanarak kimlik sütun oluşturma işlev

Aşağıdaki örnek KIMLIĞI kullanır işlev kimlik sütun yeni bir tablo oluşturmak için Person.USAddress. KIMLIK özellik için yeni bir tablo aktarmak neden olan bir birleştirmek tablosu tanımlayan deyim içerdiği için bu gereklidir.IDENTITY işlevinde belirtilen başlangıç ve artış değerleri olanlar farklı olduğunu fark AddressID Kaynak sütun tablo Person.Address.

d.Uzak veri sütunlarından belirterek tablo oluşturma kaynak

Aşağıdaki örnek, bir uzak veri yerel sunucuda yeni bir tablo oluşturmak için üç yöntem gösterir kaynak.Bu örnek, uzak verilerine bir bağlantı oluşturarak başlar kaynak.Bağlantılı sunucu adı MyLinkServer, sonra ilk SELECT... INTO deyiminin FROM yan tümcesinde ve OPENQUERY belirtilen işlev ikinci SELECT... INTO deyiminin. Üçüncü SELECT... INTO deyim doğrudan yerine bağlantılı sunucu adı uzak veri kaynağı belirler OPENDATASOURCE işlevini kullanır.