里面有個(gè)違法約束,大概是主鍵重復(fù)之類(lèi)。應(yīng)該有些數(shù)據(jù)導(dǎo)入成功了吧。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、銀海網(wǎng)站維護(hù)、網(wǎng)站推廣。
ntext
可變長(zhǎng)度 Unicode 數(shù)據(jù)的最大長(zhǎng)度為 230 - 1 (1,073,741,823) 個(gè)字符。
text
服務(wù)器代碼頁(yè)中的可變長(zhǎng)度非 Unicode 數(shù)據(jù)的最大長(zhǎng)度為 231-1 (2,147,483,647) 個(gè)字符。
一點(diǎn)問(wèn)題都沒(méi)有。
sqlserver 你建表時(shí)下面有屬性啊,有指定默認(rèn)值這一項(xiàng)。
你通過(guò)代碼頁(yè)可以實(shí)現(xiàn),就是在定義字段后面加上 default 值
排序規(guī)則指定表示數(shù)據(jù)集中每個(gè)字符的位模式。排序規(guī)則還決定用于數(shù)據(jù)排序和比較的規(guī)則。SQL Server 2005 支持在單個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)具有不同排序規(guī)則的對(duì)象,即 SQL Server 數(shù)據(jù)庫(kù)中每列都可以有各自的排序規(guī)則。對(duì)于非 Unicode 列,排序規(guī)則設(shè)置指定數(shù)據(jù)的代碼頁(yè),從而指定可以表示哪些字符。數(shù)據(jù)可以在 Unicode 列之間無(wú)縫地移動(dòng)。在非 Unicode 列之間移動(dòng)數(shù)據(jù)時(shí),數(shù)據(jù)不能無(wú)縫地移動(dòng),而必須經(jīng)當(dāng)前代碼頁(yè)轉(zhuǎn)換。如果 Transact-SQL 語(yǔ)句運(yùn)行于各自都具有不同排序規(guī)則設(shè)置的數(shù)據(jù)庫(kù)的上下文中,則其運(yùn)行結(jié)果可能會(huì)不同。如果可能,最佳實(shí)踐應(yīng)包括對(duì)組織使用標(biāo)準(zhǔn)化排序規(guī)則。如果已在組織中的所有系統(tǒng)上使用標(biāo)準(zhǔn)的排序規(guī)則設(shè)置,則無(wú)需在每個(gè)字符或 Unicode 表達(dá)式中顯式地指定排序規(guī)則。如果必須使用具有不同排序規(guī)則和代碼頁(yè)設(shè)置的對(duì)象,則必須對(duì)查詢(xún)進(jìn)行編碼以考慮排序規(guī)則優(yōu)先級(jí)的規(guī)則。排序規(guī)則的特征是區(qū)分語(yǔ)言、區(qū)分大小寫(xiě)、區(qū)分重音、區(qū)分假名以及區(qū)分全半角。Unicode 使用兩個(gè)而不是一個(gè)字節(jié)來(lái)表示語(yǔ)言的字符,這使得單個(gè) Unicode 字符集可以表示世界上幾乎所有書(shū)面語(yǔ)言。如果存儲(chǔ)的字符數(shù)據(jù)反映多種語(yǔ)言,則應(yīng)始終使用 Unicode 數(shù)據(jù)類(lèi)型(nchar、nvarchar 和 ntext),而不要使用非 Unicode 數(shù)據(jù)類(lèi)型(char、varchar 和 text)。使用 Unicode 可以體驗(yàn)到顯著的性能提升,因?yàn)樗璧拇a頁(yè)轉(zhuǎn)換較少。非 Unicode 數(shù)據(jù)類(lèi)型有明顯的局限性,因?yàn)榉?Unicode 計(jì)算機(jī)只能使用單個(gè)代碼頁(yè)。若要全面評(píng)估與使用 Unicode 或非 Unicode 數(shù)據(jù)類(lèi)型相關(guān)的問(wèn)題,必須測(cè)試您的具體方案以確定在特定環(huán)境下的性能差異大小。至少應(yīng)對(duì)站點(diǎn)排序規(guī)則進(jìn)行標(biāo)準(zhǔn)化,并盡可能部署 Unicode 服務(wù)器和客戶(hù)端。
第一步,打開(kāi)導(dǎo)入導(dǎo)出工具。(win7 32位系統(tǒng)下SQL自帶,64位系統(tǒng)下好像要裝)
第二步,選擇源文件的格式。這里txt格式文件選擇平面文件源。
第三步,瀏覽選擇文件源,其中代碼頁(yè)要改成簡(jiǎn)體中文。另外在列中可查看導(dǎo)入的數(shù)據(jù)列是否正確,在高級(jí)中可編輯字段名。
第四步,選擇目標(biāo)服務(wù)器和數(shù)據(jù)庫(kù)。就是確定數(shù)據(jù)文件要導(dǎo)入到哪一個(gè)一個(gè)服務(wù)器的哪一個(gè)數(shù)據(jù)庫(kù)中。
第五步,選擇目標(biāo)表,打開(kāi)編輯映射。默認(rèn)時(shí)以文件名建立新表。
第六步,編輯映射。把數(shù)據(jù)對(duì)應(yīng)導(dǎo)入數(shù)據(jù)庫(kù)各字段中!若是目標(biāo)表是新建的,那么要編輯數(shù)據(jù)庫(kù)中的個(gè)字段名以及數(shù)據(jù)類(lèi)型。
那么做完這些后只要數(shù)據(jù)源沒(méi)有問(wèn)題,單擊下一步……就可以搞定了。
現(xiàn)在說(shuō)說(shuō)導(dǎo)入數(shù)據(jù)時(shí)要注意的地方。在導(dǎo)入txt格式的文件時(shí)首先需要注意數(shù)據(jù)的排列。每一列之間用統(tǒng)一的分隔符隔開(kāi),刪除無(wú)關(guān)的行信息。另外需要注意的是,txt格式的文件導(dǎo)入時(shí)空格也是被讀取的,所以要?jiǎng)h除空格。其實(shí)導(dǎo)入時(shí)我遇到的就這么點(diǎn)問(wèn)題,卻足足卡了我一天半。數(shù)據(jù)按要求排列后如圖所示:
我們通過(guò)SQL腳本來(lái)插入數(shù)據(jù),常見(jiàn)如下四種方式。
方式一:一條一條插入,性能最差,不建議使用。
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄1段',160);INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄2段',260);
......
方式二:insert bulk
語(yǔ)法如下:
BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_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 ],
) ?
相關(guān)參數(shù)說(shuō)明:
BULK INSERT
[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
(
[ [ , ] BATCHSIZE = batch_size ] ? ?--BATCHSIZE指令來(lái)設(shè)置在單個(gè)事務(wù)中可以插入到表中的記錄的數(shù)量
[ [ , ] CHECK_CONSTRAINTS ] ? ? --指定在大容量導(dǎo)入操作期間,必須檢查所有對(duì)目標(biāo)表或視圖的約束。若沒(méi)有 CHECK_CONSTRAINTS 選項(xiàng),則所有 CHECK 和 FOREIGN KEY 約束都將被忽略,并且在此操作之后表的約束將標(biāo)記為不可信。
[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] ?--指定該數(shù)據(jù)文件中數(shù)據(jù)的代碼頁(yè)
[ [ , ] DATAFILETYPE =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] ?--指定 BULK INSERT 使用指定的數(shù)據(jù)文件類(lèi)型值執(zhí)行導(dǎo)入操作。
[ [ , ] FIELDTERMINATOR = 'field_terminator' ] ?--標(biāo)識(shí)分隔內(nèi)容的符號(hào)
[ [ , ] FIRSTROW = first_row ] ? ?--指定要加載的第一行的行號(hào)。默認(rèn)值是指定數(shù)據(jù)文件中的第一行
[ [ , ] FIRE_TRIGGERS ] ? ? --是否啟動(dòng)觸發(fā)器
[ [ , ] FORMATFILE = 'format_file_path' ]
[ [ , ] KEEPIDENTITY ] ? --指定導(dǎo)入數(shù)據(jù)文件中的標(biāo)識(shí)值用于標(biāo)識(shí)列
[ [ , ] KEEPNULLS ] ? ?--指定在大容量導(dǎo)入操作期間空列應(yīng)保留一個(gè)空值,而不插入用于列的任何默認(rèn)值
[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]
[ [ , ] LASTROW = last_row ] ? --指定要加載的最后一行的行號(hào)
[ [ , ] MAXERRORS = max_errors ] ? --指定允許在數(shù)據(jù)中出現(xiàn)的最多語(yǔ)法錯(cuò)誤數(shù),超過(guò)該數(shù)量后將取消大容量導(dǎo)入操作。
[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ] ?--指定數(shù)據(jù)文件中的數(shù)據(jù)如何排序
[ [ , ] ROWS_PER_BATCH = rows_per_batch ]
[ [ , ] ROWTERMINATOR = 'row_terminator' ] ? --標(biāo)識(shí)分隔行的符號(hào)
[ [ , ] TABLOCK ] ? ? --指定為大容量導(dǎo)入操作持續(xù)時(shí)間獲取一個(gè)表級(jí)鎖
[ [ , ] ERRORFILE = 'file_name' ] ? --指定用于收集格式有誤且不能轉(zhuǎn)換為 OLE DB 行集的行的文件。
)] ?
方式三:INSERT INTO xx select...
INSERT INTO Product(Id,Name,Price) SELECT NEWID(),'牛欄1段',160
UNION ALL
SELECT NEWID(),'牛欄2段',180 UNION ALL......
方式四:拼接SQL
INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛欄1段',160)
,(newid(),'牛欄2段',260)
......