日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql server 2005 T-SQL BULK INSERT (Transact-SQL)

發(fā)布時間:2024/7/19 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql server 2005 T-SQL BULK INSERT (Transact-SQL) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以用戶指定的格式將數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫表或視圖。

?Transact-SQL 語法約定

語法 BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ]
[ [ , ] FIELDTERMINATOR = 'field_terminator' ]
[ [ , ] FIRSTROW = first_row ]
[ [ , ] FIRE_TRIGGERS ]
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ]
[ [ , ] KEEPNULLS ]
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ]
[ [ , ] MAXERRORS = max_errors ]
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ]
[ [ , ] TABLOCK ]
[ [ , ] ERRORFILE = 'file_name' ]
)] 參數(shù) database_name

包含指定表或視圖的數(shù)據(jù)庫的名稱。如果未指定,則默認(rèn)為當(dāng)前數(shù)據(jù)庫。

schema_name

表或視圖架構(gòu)的名稱。如果用戶執(zhí)行大容量導(dǎo)入操作的默認(rèn)架構(gòu)為指定表或視圖的架構(gòu),則 schema_name 是可選的。如果未指定 schema 并且用戶執(zhí)行大容量導(dǎo)入操作的默認(rèn)架構(gòu)與指定表或視圖的架構(gòu)不同,則 SQL Server 將返回一條錯誤消息,同時取消大容量導(dǎo)入操作。

table_name

要將數(shù)據(jù)大容量導(dǎo)入其中的表或視圖的名稱。只能使用其所有列均引用相同基表的視圖。有關(guān)向視圖中加載數(shù)據(jù)時有哪些限制的詳細(xì)信息,請參閱 INSERT (Transact-SQL)。

' data_file '

數(shù)據(jù)文件的完整路徑,該數(shù)據(jù)文件包含要導(dǎo)入到指定表或視圖中的數(shù)據(jù)。使用 BULK INSERT 可以從磁盤(包括網(wǎng)絡(luò)、軟盤、硬盤等)導(dǎo)入數(shù)據(jù)。

data_file 必須基于運行 SQL Server 的服務(wù)器指定有效路徑。如果 data_file 為遠程文件,則指定通用命名約定 (UNC) 名稱。

BATCHSIZE = batch_size

指定批處理中的行數(shù)。每個批處理作為一個事務(wù)復(fù)制至服務(wù)器。如果復(fù)制操作失敗,則 SQL Server 提交或回滾每個批處理的事務(wù)。默認(rèn)情況下,指定數(shù)據(jù)文件中的所有數(shù)據(jù)為一個批處理。

有關(guān)詳細(xì)信息,請參閱管理大容量導(dǎo)入的批處理。

CHECK_CONSTRAINTS

指定在大容量導(dǎo)入操作期間,必須檢查所有對目標(biāo)表或視圖的約束。若沒有 CHECK_CONSTRAINTS 選項,則所有 CHECK 和 FOREIGN KEY 約束都將被忽略,并且在此操作之后表的約束將標(biāo)記為不可信。

注意:
始終強制使用 UNIQUE、PRIMARY KEY 和 NOT NULL 約束。

有時您必須檢查整個表中的約束。如果在大容量導(dǎo)入操作之前表不為空,則重新驗證約束的代價可能會超出對增量數(shù)據(jù)應(yīng)用 CHECK 約束的代價。

當(dāng)輸入數(shù)據(jù)包含違反約束的行時,您可能希望禁用約束(默認(rèn)行為)。禁用 CHECK 約束后,您可以導(dǎo)入數(shù)據(jù)并使用 Transact-SQL 語句刪除無效數(shù)據(jù)。

注意:
MAXERRORS 選項不適用于約束檢查。
注意:
在 SQL Server 2005 中,BULK INSERT 強制執(zhí)行新數(shù)據(jù)驗證和數(shù)據(jù)檢查,如果對某個數(shù)據(jù)文件中的無效數(shù)據(jù)執(zhí)行這些操作,則可能導(dǎo)致現(xiàn)有腳本失敗。

有關(guān)詳細(xì)信息,請參閱通過大容量導(dǎo)入操作控制約束檢查。

CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' }

指定該數(shù)據(jù)文件中數(shù)據(jù)的代碼頁。僅當(dāng)數(shù)據(jù)含有字符值大于 127 或小于 32charvarchartext 列時,CODEPAGE 才適用。

CODEPAGE 值 說明

ACP

charvarchartext 數(shù)據(jù)類型的列從 ANSI/Microsoft Windows 代碼頁 (ISO 1252) 轉(zhuǎn)換為 SQL Server 代碼頁。

OEM(默認(rèn)值)

charvarchartext 數(shù)據(jù)類型的列從系統(tǒng) OEM 代碼頁轉(zhuǎn)換為 SQL Server 代碼頁。

RAW

不進行從一個代碼頁到另一個代碼頁的轉(zhuǎn)換;這是最快的選項。

code_page

特定的代碼頁碼,例如 850。

有關(guān)詳細(xì)信息,請參閱在不同排序規(guī)則間復(fù)制數(shù)據(jù)。

DATAFILETYPE = { 'char' | 'native' | 'widechar' | 'widenative' }

指定 BULK INSERT 使用指定的數(shù)據(jù)文件類型值執(zhí)行導(dǎo)入操作。

DATAFILETYPE 值 所有數(shù)據(jù)都表示為:

char(默認(rèn)值)

字符格式。

有關(guān)詳細(xì)信息,請參閱使用字符格式導(dǎo)入或?qū)С鰯?shù)據(jù)。

本機

本機(數(shù)據(jù)庫)數(shù)據(jù)類型。通過使用 bcp 實用工具從 SQL Server 大容量導(dǎo)入數(shù)據(jù)來創(chuàng)建本機數(shù)據(jù)文件。

與 char 值相比,本機值提供更高的性能。

有關(guān)詳細(xì)信息,請參閱使用本機格式導(dǎo)入或?qū)С鰯?shù)據(jù)。

widechar

Unicode 字符。

有關(guān)詳細(xì)信息,請參閱使用 Unicode 字符格式導(dǎo)入或?qū)С鰯?shù)據(jù)。

widenative

本機(數(shù)據(jù)庫)數(shù)據(jù)類型,除了 charvarchartext 列以外,列中的數(shù)據(jù)均被存儲為 Unicode。通過使用 bcp 實用工具從 SQL Server 大容量導(dǎo)入數(shù)據(jù)來創(chuàng)建 widenative 數(shù)據(jù)文件。

widechar 相比,widenative 值可以提供更高的性能。如果數(shù)據(jù)文件包含 ANSI 擴展字符,則指定 widenative

有關(guān)詳細(xì)信息,請參閱使用 Unicode 本機格式導(dǎo)入或?qū)С鰯?shù)據(jù)。

FIELDTERMINATOR = 'field_terminator'

指定要用于 charwidechar 數(shù)據(jù)文件的字段終止符。默認(rèn)的字段終止符是 \t(制表符)。有關(guān)詳細(xì)信息,請參閱指定字段終止符和行終止符。

FIRSTROW = first_row

指定要加載的第一行的行號。默認(rèn)值是指定數(shù)據(jù)文件中的第一行。

注意:
FIRSTROW 屬性不可用于跳過列標(biāo)題。跳過行時,SQL Server 數(shù)據(jù)庫引擎只考慮字段終止符,而不考慮所跳過行的字段中的數(shù)據(jù)。
FIRE_TRIGGERS

指定將在大容量導(dǎo)入操作期間執(zhí)行目標(biāo)表中定義的所有插入觸發(fā)器。如果在目標(biāo)表中為 INSERT 操作定義了觸發(fā)器,則會對每個完成的批處理觸發(fā)觸發(fā)器。

如果沒有指定 FIRE_TRIGGERS,將不執(zhí)行任何插入觸發(fā)器。

有關(guān)詳細(xì)信息,請參閱導(dǎo)入大容量數(shù)據(jù)時控制觸發(fā)器執(zhí)行。

FORMATFILE = 'format_file_path'

指定一個格式化文件的完整路徑。格式化文件用于說明包含存儲響應(yīng)的數(shù)據(jù)文件,這些存儲響應(yīng)是使用 bcp 實用工具在相同的表或視圖中創(chuàng)建的。在下列情況下應(yīng)使用格式化文件:

  • 數(shù)據(jù)文件包含的列多于或少于表或視圖包含的列。
  • 列的順序不同。
  • 列分隔符發(fā)生變化。
  • 數(shù)據(jù)格式有其他更改。通常,使用 bcp 實用工具創(chuàng)建格式化文件并根據(jù)需要用文本編輯器進行修改。有關(guān)詳細(xì)信息,請參閱bcp 實用工具。
KEEPIDENTITY

指定導(dǎo)入數(shù)據(jù)文件中的標(biāo)識值用于標(biāo)識列。如果沒有指定 KEEPIDENTITY,則此列的標(biāo)識值可被驗證但不能導(dǎo)入,并且 SQL Server 將根據(jù)表創(chuàng)建時指定的種子值和增量值自動分配一個唯一的值。如果數(shù)據(jù)文件不包含該表或視圖中標(biāo)識列的值,請使用一個格式化文件指定在導(dǎo)入數(shù)據(jù)時表或視圖中的標(biāo)識列被忽略;SQL Server 自動為此列分配唯一的值。有關(guān)詳細(xì)信息,請參閱 DBCC CHECKIDENT (Transact-SQL)。

有關(guān)保留標(biāo)識值的詳細(xì)信息,請參閱大容量導(dǎo)入數(shù)據(jù)時保留標(biāo)識值。

KEEPNULLS

指定在大容量導(dǎo)入操作期間空列應(yīng)保留一個空值,而不插入用于列的任何默認(rèn)值。有關(guān)詳細(xì)信息,請參閱在大容量導(dǎo)入期間保留空值或使用默認(rèn)值。

KILOBYTES_PER_BATCH = kilobytes_per_batch

將每個批處理中數(shù)據(jù)的近似千字節(jié)數(shù) (KB) 指定為 kilobytes_per_batch。默認(rèn)情況下,KILOBYTES_PER_BATCH 未知。

有關(guān)詳細(xì)信息,請參閱管理大容量導(dǎo)入的批處理。

LASTROW = last_row

指定要加載的最后一行的行號。默認(rèn)值為 0,表示指定數(shù)據(jù)文件中的最后一行。

MAXERRORS = max_errors

指定允許在數(shù)據(jù)中出現(xiàn)的最多語法錯誤數(shù),超過該數(shù)量后將取消大容量導(dǎo)入操作。大容量導(dǎo)入操作未能導(dǎo)入的每一行都將被忽略并且計為一個錯誤。如果未指定 max_errors,則默認(rèn)值為 10。

注意:
MAX_ERRORS 選項不適用于約束檢查,也不適用于轉(zhuǎn)換 moneybigint 數(shù)據(jù)類型。
ORDER ( { column [ ASC | DESC ] } [ ,... n ] )

指定數(shù)據(jù)文件中的數(shù)據(jù)如何排序。如果根據(jù)表中的聚集索引(如果有的話)對要導(dǎo)入的數(shù)據(jù)排序,則可提高大容量導(dǎo)入的性能。如果數(shù)據(jù)文件按不同于聚集索引鍵的順序排序,或者該表沒有聚集索引,則忽略 ORDER 子句。提供的列名必須是目標(biāo)表中有效的列名。默認(rèn)情況下,大容量插入操作假設(shè)數(shù)據(jù)文件未排序。對于優(yōu)化大容量導(dǎo)入,SQL Server 還將驗證導(dǎo)入的數(shù)據(jù)是否已排序。

有關(guān)詳細(xì)信息,請參閱大容量導(dǎo)入數(shù)據(jù)時控制排序順序。

n

指示可以指定多個列的占位符。

ROWS_PER_BATCH = rows_per_batch

指示數(shù)據(jù)文件中近似的數(shù)據(jù)行數(shù)量。

默認(rèn)情況下,數(shù)據(jù)文件中所有的數(shù)據(jù)都作為單一事務(wù)發(fā)送到服務(wù)器,批處理中的行數(shù)對于查詢優(yōu)化器是未知的。如果指定了 ROWS_PER_BATCH(其值 > 0),則服務(wù)器將使用該值優(yōu)化大容量導(dǎo)入操作。為 ROWS_PER_BATCH 指定的值應(yīng)當(dāng)與實際行數(shù)大致相同。

有關(guān)詳細(xì)信息,請參閱管理大容量導(dǎo)入的批處理。

ROWTERMINATOR = 'row_terminator'

指定對于 char widechar 數(shù)據(jù)文件要使用的行終止符。默認(rèn)行終止符為 \r\n(換行符)。有關(guān)詳細(xì)信息,請參閱指定字段終止符和行終止符。

TABLOCK

指定為大容量導(dǎo)入操作持續(xù)時間獲取一個表級鎖。如果表沒有索引并且指定了 TABLOCK,則該表可以同時由多個客戶端加載。默認(rèn)情況下,鎖定行為由表選項 table lock on bulk load 確定。在大容量導(dǎo)入操作期間持有鎖會減少表上的鎖爭用,從而顯著提高操作性能。

有關(guān)詳細(xì)信息,請參閱控制大容量導(dǎo)入的鎖定行為。

ERRORFILE = 'file_name'

指定用于收集格式有誤且不能轉(zhuǎn)換為 OLE DB 行集的行的文件。這些行將按原樣從數(shù)據(jù)文件復(fù)制到此錯誤文件中。

錯誤文件是執(zhí)行命令時創(chuàng)建的。如果文件已經(jīng)存在則會發(fā)生錯誤。此外,還創(chuàng)建了一個擴展名為 .ERROR.txt 的控制文件。此文件引用錯誤文件中的每一行并提供錯誤診斷。糾正錯誤后即可加載數(shù)據(jù)。

備注

有關(guān)為大容量導(dǎo)入準(zhǔn)備數(shù)據(jù)的信息,請參閱準(zhǔn)備用于大容量導(dǎo)出或大容量導(dǎo)入的數(shù)據(jù)。

BULK INSERT 語句能在用戶定義事務(wù)中執(zhí)行。對使用 BULK INSERT 語句和 BATCHSIZE 子句將數(shù)據(jù)導(dǎo)入表或視圖(使用多個批處理)的用戶定義事務(wù)執(zhí)行回滾操作,將回滾所有發(fā)送給 SQL Server 的批處理。

有關(guān)何時在事務(wù)日志中記錄由大容量導(dǎo)入執(zhí)行的行插入操作的信息,請參閱在大容量導(dǎo)入中按最小方式記錄日志的前提條件。

在 SQL Server 2005 中,BULK INSERT 將對從文件中讀取的數(shù)據(jù)執(zhí)行新的且更嚴(yán)格的數(shù)據(jù)驗證和數(shù)據(jù)檢查,因此,在對無效數(shù)據(jù)執(zhí)行驗證和檢查時,可能導(dǎo)致現(xiàn)有腳本失敗。例如,BULK INSERT 現(xiàn)在驗證:

  • floatreal 數(shù)據(jù)類型的本機表示形式是否有效。
  • Unicode 數(shù)據(jù)的字節(jié)數(shù)是否為偶數(shù)。

無效數(shù)據(jù)的形式在 SQL Server 的早期版本中可以大容量導(dǎo)入,但現(xiàn)在可能無法加載。在 SQL Server 的早期版本中,客戶端嘗試訪問無效數(shù)據(jù)時才會出錯。在大容量導(dǎo)入后查詢數(shù)據(jù)時,由 SQL Server 2005 強制使用的更為嚴(yán)格的驗證可最大程度地減少意外情況發(fā)生。

大容量導(dǎo)出或?qū)?SQLXML 文檔

若要大容量導(dǎo)出或?qū)?SQLXML 數(shù)據(jù),請在格式化文件中使用下列數(shù)據(jù)類型之一:

數(shù)據(jù)類型 結(jié)果

SQLCHAR 或 SQLVARYCHAR

在客戶端代碼頁或排序規(guī)則隱含的代碼頁中發(fā)送數(shù)據(jù)。效果等同于在不指定格式化文件的情況下指定 DATAFILETYPE = 'char'

SQLNCHAR 或 SQLNVARCHAR

以 Unicode 格式發(fā)送數(shù)據(jù)。效果等同于在不指定格式化文件的情況下指定 DATAFILETYPE = 'widechar'

SQLBINARY 或 SQLVARYBIN

不經(jīng)任何轉(zhuǎn)換即發(fā)送數(shù)據(jù)。

字符串到小數(shù)的類型轉(zhuǎn)換

在 SQL Server 2005 中,BULK INSERT 中使用的字符串到小數(shù)的類型轉(zhuǎn)換與 Transact-SQL CONVERT 函數(shù)遵循相同的規(guī)則,該函數(shù)拒絕使用表示使用科學(xué)記數(shù)法的數(shù)值的字符串。因此,BULK INSERT 將此類字符串視為無效值并報告轉(zhuǎn)換錯誤。

注意:
在 SQL Server 版本 7.0 和 SQL Server 2000 中,BULK INSERT 支持將使用科學(xué)計數(shù)法表示數(shù)值的字符串從字符串類型轉(zhuǎn)換為小數(shù)類型。

若要在 SQL Server 2005 中實現(xiàn)此行為,請使用格式化文件將科學(xué)記數(shù)法 float 數(shù)據(jù)大容量導(dǎo)入小數(shù)列中。在格式化文件中,顯式說明列作為 realfloat 數(shù)據(jù)。有關(guān)這些數(shù)據(jù)類型的詳細(xì)信息,請參閱 float 和 real (Transact-SQL)。

注意:
格式化文件表示 real 數(shù)據(jù)作為 SQLFLT4 數(shù)據(jù)類型,以及 float 數(shù)據(jù)作為 SQLFLT8 數(shù)據(jù)類型。有關(guān) XML 格式化文件的詳細(xì)信息,請參閱 XML 格式化文件的架構(gòu)語法;有關(guān)非 XML 格式化文件的信息,請參閱使用 bcp 指定文件存儲類型。

導(dǎo)入使用科學(xué)記數(shù)法的數(shù)值的示例

該示例使用下表:

復(fù)制代碼 CREATE TABLE t_float(c1 float, c2 decimal (5,4))

用戶要將數(shù)據(jù)大容量導(dǎo)入 t_float 表中。數(shù)據(jù)文件 C:\t_float-c.dat 包含科學(xué)記數(shù)法 float 數(shù)據(jù),例如:

復(fù)制代碼 8.0000000000000002E-28.0000000000000002E-2

但是,BULK INSERT 無法將該數(shù)據(jù)直接導(dǎo)入 t_float,原因是其第二列 c2 使用 decimal 數(shù)據(jù)類型。因此,必須使用格式化文件。格式化文件必須將科學(xué)記數(shù)法 float 數(shù)據(jù)映射到列 c2 的小數(shù)格式。

以下格式化文件使用 SQLFLT8 數(shù)據(jù)類型將第二個數(shù)據(jù)字段映射到第二列:

<?xml version="1.0"?>

<BCPFORMAT xmlns="http://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="30"/>

<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="30"/> </RECORD> <ROW>

<COLUMN SOURCE="1" NAME="c1" xsi:type="SQLFLT8"/>

<COLUMN SOURCE="2" NAME="c2" xsi:type="SQLFLT8"/> </ROW> </BCPFORMAT>

若要使用此格式化文件(使用文件名 C:\t_floatformat-c-xml.xml)將測試數(shù)據(jù)導(dǎo)入測試表中,請發(fā)出下列 Transact-SQL 語句:

復(fù)制代碼 BULK INSERT bulktest..t_float
FROM 'C:\t_float-c.dat' WITH (FORMATFILE='C:\t_floatformat-c-xml.xml');
GO 權(quán)限

需要 INSERT 和 ADMINISTER BULK OPERATIONS 權(quán)限。另外,當(dāng)下列各項中的一項或多項為真時,還需要 ALTER TABLE 權(quán)限:

  • 約束存在并且未指定 CHECK_CONSTRAINTS 選項。
    注意:
    禁用約束是默認(rèn)行為。若要顯式檢查約束,請使用 CHECK_CONSTRAINTS 選項。
  • 觸發(fā)器存在并且未指定 FIRE_TRIGGER 選項。
    注意:
    默認(rèn)情況下,不觸發(fā)觸發(fā)器。若要顯式觸發(fā)觸發(fā)器,請使用 FIRE_TRIGGER 選項。
  • 使用 KEEPIDENTITY 選項可以從數(shù)據(jù)文件中導(dǎo)入標(biāo)識值。

安全帳戶委托(模擬)

如果 SQL Server 用戶使用 Windows 身份驗證登錄,則用戶僅能讀取其帳戶能夠訪問的文件,這不依賴于 SQL Server 進程的安全配置文件。

如果在一臺計算機上使用 sqlcmdosql 執(zhí)行 BULK INSERT 語句,將數(shù)據(jù)插入第二臺計算機上的 SQL Server,同時使用 UNC 路徑指定位于第三臺計算機上的 data_file,則可能會收到 4861 錯誤。

若要解決此問題,請使用 SQL Server 身份驗證并指定一個使用 SQL Server 進程帳戶安全配置文件的 SQL Server 登錄名,或者對 Windows 進行配置以啟用安全帳戶委托。有關(guān)如何使用戶帳戶可信以進行委托的信息,請參閱 Windows 幫助。

有關(guān)安全帳戶委托以及使用 BULK INSERT 的其他安全注意事項的詳細(xì)信息,請參閱使用 BULK INSERT 或 OPENROWSET(BULK...) 導(dǎo)入大容量數(shù)據(jù)。

示例

A. 使用管道從文件導(dǎo)入數(shù)據(jù)

以下示例使用豎線 (|) 作為字段終止符,使用 |\n 作為行終止符,將訂單詳細(xì)信息從指定的數(shù)據(jù)文件導(dǎo)入 AdventureWorks.Sales.SalesOrderDetail 表中。

復(fù)制代碼 BULK INSERT AdventureWorks.Sales.SalesOrderDetail
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR =' |',
ROWTERMINATOR =' |\n'
)

B. 使用 FIRE_TRIGGER 參數(shù)

以下示例指定 FIRE_TRIGGERS 參數(shù)。

復(fù)制代碼 BULK INSERT AdventureWorks.Sales.SalesOrderDetail
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR =' |',
ROWTERMINATOR = ':\n',
FIRE_TRIGGERS
)

C. 使用換行符作為行終止符

以下示例將導(dǎo)入使用換行符作為行終止符的文件(如 UNIX 輸出):

復(fù)制代碼 DECLARE @bulk_cmd varchar(1000)
SET @bulk_cmd = 'BULK INSERT AdventureWorks.Sales.SalesOrderDetail
FROM ''<drive>:\<path>\<filename>''
WITH (ROWTERMINATOR = '''+CHAR(10)+''')'
EXEC(@bulk_cmd)

其他示例

以下主題提供了其他 BULK INSERT 示例:

  • 大容量導(dǎo)入和導(dǎo)出 XML 文檔的示例
  • 在不同排序規(guī)則間復(fù)制數(shù)據(jù)
  • 大容量導(dǎo)入數(shù)據(jù)時保留標(biāo)識值
  • 在大容量導(dǎo)入期間保留空值或使用默認(rèn)值
  • 指定字段終止符和行終止符
  • 使用格式化文件大容量導(dǎo)入數(shù)據(jù)
  • 使用字符格式導(dǎo)入或?qū)С鰯?shù)據(jù)
  • 使用本機格式導(dǎo)入或?qū)С鰯?shù)據(jù)
  • 使用 Unicode 字符格式導(dǎo)入或?qū)С鰯?shù)據(jù)
  • 使用 Unicode 本機格式導(dǎo)入或?qū)С鰯?shù)據(jù)
  • 使用格式化文件跳過表列
  • 使用格式化文件將表列映射到數(shù)據(jù)文件字段
?請參閱

參考

OPENROWSET (Transact-SQL)
sp_tableoption (Transact-SQL)

其他資源

準(zhǔn)備用于大容量導(dǎo)出或大容量導(dǎo)入的數(shù)據(jù)
用于導(dǎo)入或?qū)С鰯?shù)據(jù)的數(shù)據(jù)格式
用來導(dǎo)入或?qū)С鰯?shù)據(jù)的格式化文件
優(yōu)化大容量導(dǎo)入性能
關(guān)于大容量導(dǎo)入和大容量導(dǎo)出操作
大容量導(dǎo)入和導(dǎo)出數(shù)據(jù)的方案
bcp 實用工具
使用 SQL 排序規(guī)則
使用表級鎖定并行導(dǎo)入數(shù)據(jù) ?

轉(zhuǎn)載于:https://www.cnblogs.com/czh-liyu/archive/2007/12/22/1010268.html

總結(jié)

以上是生活随笔為你收集整理的sql server 2005 T-SQL BULK INSERT (Transact-SQL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。