本來好好的,電腦重裝了一下居然碰到了這個(gè)問題。百度后知道了原因。記錄一下
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),額濟(jì)納企業(yè)網(wǎng)站建設(shè),額濟(jì)納品牌網(wǎng)站建設(shè),網(wǎng)站定制,額濟(jì)納網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,額濟(jì)納網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
是因?yàn)閮蓚€(gè)表字段的排序規(guī)則不同導(dǎo)致的,于是找了很久,最后才發(fā)現(xiàn)原來是創(chuàng)建的臨時(shí)表造成的。
解決方案如下:
CREATE TABLE #Item(
id INT PRIMARY KEY,
item_id varchar(30) Collate Database_Default ,
item_name varchar(50) Collate Database_Default ,
seq varchar(10) Collate Database_Default ,
price money ,
cost_price money ,
[path] varchar(200) Collate Database_Default ,
date_deleted datetime
)
后面加Collate Database_Default , 來引用數(shù)據(jù)庫(kù)默認(rèn)的排序規(guī)則。
順便學(xué)習(xí)了下:
什么叫排序規(guī)則呢?MS是這樣描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存儲(chǔ)由排序規(guī)則控制。排序規(guī)則指定表示每個(gè)字符的位模式以及存
儲(chǔ)和比較字符所使用的規(guī)則。"
在查詢分析器內(nèi)執(zhí)行下面語(yǔ)句,可以得到SQL SERVER支持的所有排序規(guī)則。
select * from ::fn_helpcollations()
排序規(guī)則名稱由兩部份構(gòu)成,前半部份是指本排序規(guī)則所支持的字符集。
如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指針對(duì)大陸簡(jiǎn)體字UNICODE的排序規(guī)則。
排序規(guī)則的后半部份即后綴 含義:
_BIN 二進(jìn)制排序
_CI(CS) 是否區(qū)分大小寫,CI不區(qū)分,CS區(qū)分
_AI(AS) 是否區(qū)分重音,AI不區(qū)分,AS區(qū)分
_KI(KS) 是否區(qū)分假名類型,KI不區(qū)分,KS區(qū)分
_WI(WS) 是否區(qū)分寬度 WI不區(qū)分,WS區(qū)分
區(qū)分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請(qǐng)選擇該選項(xiàng)。
區(qū)分重音:如果想讓比較將重音和非重音字母視為不等,請(qǐng)選擇該選項(xiàng)。如果選擇該選項(xiàng),比較還將重音不同的字母視為不等。
區(qū)分假名:如果想讓比較將片假名和平假名日語(yǔ)音節(jié)視為不等,請(qǐng)選擇該選項(xiàng)。
區(qū)分寬度:如果想讓比較將半角字符和全角字符視為不等,請(qǐng)選擇該選項(xiàng)
其他解決方法:
1、將數(shù)據(jù)庫(kù)中一個(gè)表的字段改成與另一個(gè)表中要比較的字段相同的排序規(guī)則;
2、在SQL語(yǔ)句的Where子句后面加上類似這樣的SQL片段:collate Chinese_PRC_CI_AI_WS
如:Select A.* From A,B Where A.a = B.b collate Chinese_PRC_CI_AI_WS