討論區快速選單
知識庫快速選單
討論區最近新進100則主題 掌握Salesforce雲端管理秘訣 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
SQL語法 大小寫有差嗎 ?
更改我的閱讀文章字型大小
作者 : booker(booker)
[ 貼文 59 | 人氣 7479 | 評價 120 | 評價/貼文 2.03 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/2/24 上午 11:29:07
請問一下喔

sql server 2000 裡面

sql 語法 大小寫有差嗎

1. select * from DbTable where id=3

2. select * from dbtable where id=3

3. select * from dbtable where ID=3

以上這些有差嗎 (真實的table是DbTable, 欄位是ID)

在安裝時有差嗎 我都是下一步...


我的電腦裝好幾次 沒差就是沒差 (我裝都是下一步的)
朋友的電腦 有差就是有差 (他忘記當初怎麼裝的 應該沒動到啥設定)

有人有遇到過嗎
作者 : arios(Arios)
[ 貼文 72 | 人氣 5087 | 評價 420 | 評價/貼文 5.83 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人booker註記此篇回應為很有道理 2005/2/24 下午 01:18:10
我的也是下一步下一步,也沒差,大小寫視成相同字元
作者 : booker(booker)
[ 貼文 59 | 人氣 7479 | 評價 120 | 評價/貼文 2.03 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/2/24 下午 03:35:12
會不會是安裝時 有某步驟 設定後

使得 sql server 2000 會大小寫有差阿

使得table DB 與 table db 不同
作者 : mydick(ㄉ一ˊㄎㄜˋ) SQL Language優秀好手貼文超過200則
[ 貼文 223 | 人氣 6296 | 評價 2890 | 評價/貼文 12.96 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人booker註記此篇回應為最佳解答 2005/2/24 下午 04:17:02
資料庫是否區分大小寫主要受到定序(collate) 設定的影響! 定序設定應該有兩處:
一為SQL Server 安裝時選項之一, 往後在SQL Server 上新增資料庫及依據SQL Server 的定序名稱為預設!
另一為新增資料庫時的實際定序設定, 此會以SQL Server 安裝時的定序為預設, 但是是可以修改的 (變更定序的前提是資料庫中不能有資料)!

由於SQL Server 安裝時預設是 Chinese_Taiwan_Stroke_CI_AS, 其中的CI 表示 Case Insensitive(不區分大小寫), 因此資料庫定序為區分大小寫(...._CI_AS, Case Sensitive) 應該是自行設定的結果!

以下提供查詢及變更定序的方法, 建議可由 MS-SQL Server Online Help(SQL 線上說明) 查閱"定序" 以獲得更豐富的訊息!

PS: 1. 查詢資料庫定序: select databasepropertyex('[DatabaseName]','collation')
     2. 變更資料庫定序: alter database [DatabaseName] collate [CollationName]
作者 : mydick(ㄉ一ˊㄎㄜˋ) SQL Language優秀好手貼文超過200則
[ 貼文 223 | 人氣 6296 | 評價 2890 | 評價/貼文 12.96 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人booker註記此篇回應為很有道理 2005/2/24 下午 04:18:19
更正:
由於SQL Server 安裝時預設是 Chinese_Taiwan_Stroke_CI_AS, 其中的CI 表示 Case Insensitive(不區分大小寫), 因此資料庫定序為區分大小寫(...._CS_AS, Case Sensitive) 應該是自行設定的結果!
作者 : aaaaaaaa(路人) SQL Language優秀好手貼文超過200則人氣指數超過10000點
[ 貼文 271 | 人氣 11161 | 評價 1760 | 評價/貼文 6.49 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/2/25 上午 09:07:37
CREATE TABLE #TMP ( [A] [VARCHAR] (2) COLLATE Chinese_Taiwan_Stroke_CS_AS_KS_WS NOT NULL
,[B] [VARCHAR] (2)
)
INSERT #TMP
SELECT 'a','b'
UNION ALL
SELECT 'A','B'

SELECT * FROM #TMP WHERE A = 'a'
SELECT * FROM #TMP WHERE A = 'A'
SELECT * FROM #TMP WHERE B = 'B'

DROP TABLE #TMP
--COLLATE的參數說明
SELECT * FROM ::fn_helpcollations()
作者 : kib71462(lance)
[ 貼文 27 | 人氣 1 | 評價 230 | 評價/貼文 8.52 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人booker註記此篇回應為最佳解答 2005/2/25 下午 12:38:06
再sql server的線上說明內有詳細的說明
標題是--如何建立區分大小寫的 SQL Server 2000 執行個體 (安裝程式)
作者 : booker(booker)
[ 貼文 59 | 人氣 7479 | 評價 120 | 評價/貼文 2.03 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/2 下午 12:32:40


> 2. 變更資料庫定序: alter database [DatabaseName] collate [CollationName]

就是這一行 解決了我的問題

整理一下

在安裝SQL Server 2000時
選自訂安裝 之後 後面會有一步驟 要選定序

如此會相關 select後的排序 以及我所遇到的 大小寫問題(sql語法中有用到的db or 欄位 名稱 必須與原資料庫大小寫一樣)

謝謝大家

此外 又有新問題

之前那台win server 2003 & SQL server 2000 (發生大小寫問題的那台)
sql server enterprise manager 中 新增 sql server 註冊 別台sql server 2000 都ok
但是 別台卻都無法新增此台
有看到 有人提到用 query analyzer來連連看 也無法連到
帳號密碼也都正確
windows帳戶驗證 sql server帳戶驗證 也都試過了
出現的錯誤是

無法連結至伺服器 xxx :
伺服器: 訊息17 , 層級16 ,狀態1
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒絕存取

大家有遇到過嗎
作者 : aaaaaaaa(路人) SQL Language優秀好手貼文超過200則人氣指數超過10000點
[ 貼文 271 | 人氣 11161 | 評價 1760 | 評價/貼文 6.49 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/2 下午 02:55:36
SQL SERVER有開TCP/IP嗎還是只有具名管道?
用ODBC連呢?
所有SQL SERVER的平台都是2003???
作者 : booker(booker)
[ 貼文 59 | 人氣 7479 | 評價 120 | 評價/貼文 2.03 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/7 上午 07:27:59

>此外 又有新問題
>
>之前那台win server 2003 & SQL server 2000 (發生大小寫問題的那台)
>sql server enterprise manager 中 新增 sql server 註冊 別台sql server 2000 都ok
>但是 別台卻都無法新增此台
>有看到 有人提到用 query analyzer來連連看 也無法連到
>帳號密碼也都正確
>windows帳戶驗證 sql server帳戶驗證 也都試過了
>出現的錯誤是
>
>無法連結至伺服器 xxx :
>伺服器: 訊息17 , 層級16 ,狀態1
>[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒絕存取
>
>大家有遇到過嗎

結果是...
win2003裝sql server 2000要更新到sql server 2000 sp3才能使用......
作者 : flair(flair) 人氣指數超過10000點
[ 貼文 104 | 人氣 13327 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/31 上午 01:06:25
哇,一直以為沒有區分大小寫...
今天受教了...
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125