Aracılığıyla paylaş


biçim dosyası kullanarak bir tablo sütun Atla

Bu konu, biçimi dosyaları anlatılmaktadır.Alan veri dosyasında yok olduğunda, bir tablo sütun alma atlamak için bir biçim dosyası'nı kullanabilirsiniz.Bir veri dosyası sütun sayısından daha az sayıda alan içerebilir tablo ise, yalnızca atlandı sütunları ve/null veya varsayılan değerine sahip.

Örnek tablo ve veri dosyası

Aşağıdaki örnekler adlı bir tablo gerektirir. myTestSkipCol içinde AdventureWorks Örnek Veritabanı'nın altında dbo şema.Bu tablo aşağıdaki gibi oluşturursunuz:

USE AdventureWorks;
GO
CREATE TABLE myTestSkipCol 
   (
   Col1 smallint,
   Col2 nvarchar(50) NULL,
   Col3 nvarchar(50) not NULL
   );
GO

Aşağıdaki örnekler bir örnek veri dosyasını kullanın... myTestSkipCol2.dat, ilgili tablo üç sütun içerir, ancak yalnızca iki alan içerir:

1,DataForColumn3
1,DataForColumn3
1,DataForColumn3

Alma verileri toplu olarak myTestSkipCol2.dat içine myTestSkipCol Tablodaki ilk veri alanı için biçim dosyası eşlenmelidir. Col1, ikinci alan için Col3, atlanıyor Col2.

Non-XML kullanarak biçim dosyası

Bir tablo sütun atlamak olmayan XML biçim dosyası değiştirebilirsiniz.Genelde, bu kullanarak içerir Kullanımıbcp yardımcı programı, bir varsayılan olmayan XML oluşturmak için biçim dosyası ve varsayılan dosya bir metin düzenleyicisinde değiştirme.Değiştirilmiş biçim dosyası her varolan alanları, karşılık gelen tablo sütun için eşleme ve hangi tablo sütun veya sütunları atlamak belirtmek gerekir.Varsayılan olmayan XML veri dosyasını değiştirmek için iki seçenekleri vardır.Her iki alternatif veri alan veri dosyasında yok ve karşılık gelen tablo sütuna veri eklenen gösterir.

Bir varsayılan olmayan XML oluşturma biçim dosyası

Bu konu, varsayılan olmayan-XML kullanan biçim dosyası için oluşturulmuş myTestSkipCol aşağıdakileri kullanarak örnek tablo Kullanımıbcp command:

bcp AdventureWorks..myTestSkipCol format nul -f myTestSkipCol_Default.fmt -c -T

Önceki komut olmayan-XML oluşturur biçim dosyası, myTestSkipCol_Default.fmt. Bu biçim dosyasını adlı bir Varsayılan biçim dosyası tarafından oluşturulan formu olduğundanKullanımıbcp.Genelde, varsayılan biçim dosyası bir veri dosyası alan ve tablo sütunları arasında bire bir ilişkiyi açıklar.

Security noteSecurity Note:

Bağlanmakta sunucu örnek adını belirtmeniz gerekebilir.Ayrıca, kullanıcı adını ve parolasını belirtmeniz gerekebilir.Daha fazla bilgi için bkz:Kullanımıbcp yardımcı programı.

Aşağıdaki resimde, bu örnek varsayılan biçimi dosyaları değerleri gösterir.Resimde, ayrıca her bir biçim dosyası adını gösterir alan.

default non-XML format file for myTestSkipCol

Not

Biçim dosyasını alanları hakkında daha fazla bilgi için bkz: Disk XML biçimi dosyaları anlama.

Non-XML değiştirme yöntemleri biçim dosyası

Bir tablo sütun atlamak için , varsayılan olmayan XML biçimi dosyasını düzenleyin ve sonra da aşağıdaki alternatif yöntemlerden birini kullanarak dosyayı değiştirin:

  • Tercih edilen yöntem, üç temel adım içerir.Ilk olarak, veri dosyasından eksik olan alan açıklayan herhangi bir biçim dosyasını satırın silin.Daha sonra silinmiş izleyen her biçiminde bir dosyayı satır "dosya alan sırasını barındırma" değerini azaltın.Amaç sıralı "dosya alan sırasını barındırma" değerler, 1 ile sağlamaktır. n, gerçek konumunu veri dosyasındaki her veri alanını yansıtır.Son olarak, alanları veri dosyasındaki gerçek sayısını yansıtması için "Sütun sayısı" alanındaki değeri azaltın.

    Aşağıdaki örnek için varsayılan biçim dosyası temel alan myTestSkipColTablo oluşturma bir varsayılan olmayan XML biçimi yer dosyası"," Bu konunun önceki kısımlarında oluşturulur. Bu değiştirilmiş biçim dosyası ilk veri alan için eşleştirir. Col1, atlar Col2ve eşlemeleri için ikinci veri alan Col3. Satır için Col2 silinmiş olabilir. Başka değişiklikler kalın olarak gösterilir:

    9.0
    2
    1       SQLCHAR       0       7       "\t"     1     Col1         ""
    2       SQLCHAR       0       100     "\r\n"   3     Col3         SQL_Latin1_General_CP1_CI_AS
    
  • Alternatif olarak, tablo sütun atlamak için tablo sütununa karşılık gelen dosya biçim satır tanımını değiştirebilirsiniz.Dosya veri uzunluğu "uzunluğu önek" Bu dosya biçimi satır "ana" ve "sunucu sütun sırası" değerleri olmalıdır küme 0.Ayrıca, "Sonlandırıcı" ve "sütun alfabe düzeni" alanları ayarlanmalıdır"" (null).

    Gerçek) sütun adı gerekli değildir, ancak "sunucu sütun adı" değeri boş olmayan bir dize gerektirir.Kalan biçim alanları varsayılan değerlerine gerektirir.

    Aşağıdaki örnekte ayrıca için varsayılan biçim dosyası türetilir myTestSkipCol TABLO. Değerler 0 ya da null olmalıdır, kalın olarak gösterilir.

    9.0
    3
    1       SQLCHAR       0       7       "\t"     1     Col1         ""
    2       SQLCHAR       00""0     Col2         ""
    3       SQLCHAR       0       100     "\r\n"   3     Col3         SQL_Latin1_General_CP1_CI_AS
    

Örnekler

Aşağıdaki örnekler de esas alan myTestSkipCol örnek tablo ve myTestSkipCol2.dat"Örnek tablo ve veri dosyasında," oluşturan bir veri dosyası, bu konunun önceki kısımlarında örnek.

BULK INSERT kullanma

Bu örnekte "Yöntemleri için değiştirme bir olmayan XML biçim dosyası," oluşturulan değiştirilmiş olmayan XML biçim dosyası s birini kullanarak, bu konunun önceki kısımlarında çalışır.Bu örnekte, değiştirilmiş biçim dosyası yeniden adlandırılır C:\myTestSkipCol2.fmt. Kullanmak için BULK INSERT Toplu alma için myTestSkipCol2.dat veri dosyası, içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütmek aşağıdaki kodu:

USE AdventureWorks;
GO
BULK INSERT myTestSkipCol 
   FROM 'C:\myTestSkipCol2.dat' 
   WITH (FORMATFILE = 'C:\myTestSkipCol2.fmt');
GO
SELECT * FROM myTestSkipCol;
GO

XML kullanarak biçim dosyası

XML biçimli bir dosya ile doğrudan içine alırken bir sütun atlayamazsınız bir tablo kullanarak bir Kullanımıbcp komutu veya bir BULK INSERT deyim.Ancak, tüm son sütun alabilirsiniz bir tablo.Bilgisayarınızda herhangi bir son sütun ancak atlamak, hedef genel bir görünümünü oluşturma tablo, yalnızca veri dosyasında bulunan sütunlar içerir.Sonra o dosyadan içe aktarma veri görünümü içinde toplu.

XML kullanılacak biçim dosyası OPENROWSET(BULK...) kullanarak bir tablo sütun atlamak için , açık bir seçim listesi ve ayrıca hedef tablodaki sütunlar listesi gibi girmeniz gerekir:

EKLE... <column_list> SELECT <column_list> openrowset(bulk...)

Bir varsayılan XML oluşturma biçim dosyası

Değiştirilmiş biçimi dosyaları örnekleri temel alan myTestSkipCol"Örnek tablo ve veri dosyasında," oluşturulan tablosu ve veri dosyası, bu konunun önceki kısımlarında örnek. Aşağıdaki Kullanımıbcp komut varsayılan XML oluşturur biçim dosyası içinmyTestSkipCol TABLO:

bcp AdventureWorks..myTestSkipCol format nul -f myTestSkipCol_Default.xml -c -x -T

Varsayılan olmayan XML sonuç biçim dosyası veri dosyası alan ve tablo sütunları arasında bire bir ilişkiyi aşağıda açıklanmaktadır:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="Col1" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Col2" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="Col3" xsi:type="SQLNVARCHAR"/>
 </ROW>
</BCPFORMAT>

Not

XML biçimi dosyaları yapısı hakkında daha fazla bilgi için bkz: XML biçimi dosyaları anlama.

Örnekler

Bu örneklerde, kullanımı bölümünde myTestSkipCol örnek tablo ve myTestSkipCol2.dat"Örnek tablo ve veri dosyasında," oluşturan bir veri dosyası, bu konunun önceki kısımlarında örnek. Verileri almak için myTestSkipCol2.dat içine myTestSkipCol Tablo, örnekler aşağıdaki değiştirilmiş XML biçimi dosyası kullanın. myTestSkipCol2-x.xml. Bu biçim dosyası oluşturan "Creating varsayılan XML biçimi dosya içinde" Bu konunun önceki kısımlarında dayanır.

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="Col1" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Col3" xsi:type="SQLNVARCHAR"/>
 </ROW>
</BCPFORMAT>

OPENROWSET(BULK...) kullanma

Aşağıdaki örnek OPENROWSET toplu satır kümesi sağlayıcı ve myTestSkipCol2.xml Biçim dosyası'nı tıklatın. Örnek toplu alır myTestSkipCol2.dat uygulamasına veri dosyası myTestSkipCol TABLO. deyim, açık bir seçim listesi ve ayrıca gerektiğinde hedef tablodaki sütunların listesini içerir.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, aşağıdaki kodu çalıştırın:

USE AdventureWorks;
GO
INSERT INTO myTestSkipCol
  (Col1,Col3)
    SELECT Col1,Col3
      FROM  OPENROWSET(BULK  'C:\myTestSkipCol2.Dat',
      FORMATFILE='C:\myTestSkipCol2.Xml'  
       ) as t1 ;
GO

toplu alma bir görünüm kullanma

Aşağıdaki örnek oluşturur v_myTestSkipCol üzerinde myTestSkipCol TABLO. Bu görünüm ikinci tablo sütun atlar. Col2. Sonra örnek kullanır BULK INSERT Alınacak myTestSkipCol2.dat Bu görünümü veri dosyasına.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, aşağıdaki kodu çalıştırın:

CREATE VIEW v_myTestSkipCol AS
    SELECT Col1,Col3
    FROM myTestSkipCol;
GO

USE AdventureWorks;
GO
BULK INSERT v_myTestSkipCol
FROM 'C:\myTestSkipCol2.dat'
WITH (FORMATFILE='C:\myTestSkipCol2.xml');
GO