線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1976
推到 Plurk!
推到 Facebook!

ALTER 新增欄位錯誤...MSSQL 有限制嗎? 請教..謝謝.

答題得分者是:l630521
crazycat
一般會員


發表:22
回覆:20
積分:8
註冊:2003-04-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-03 11:50:04 IP:203.70.xxx.xxx 未訂閱
D5, MSSQL7 我建立加入中文欄位名稱如 版本控制 版本1.1 版本1.2 ....... 用程式去動態建立 "版本控制" ===>> OK 但是只要碰到含有數字的 如 "版本1.1" 就無法新增欄位 可是我將程式指令輸出.直接於 SQL_W 執行 新增 "版本1.1" 就OK 如下 ALTER TABLE VER_CONTROL ADD "版本1.1" Int NULL DEFAULT(0),"版本1.2" int NULL DEFAULT(0) 請教我哪裡錯了?或是哪裡漏了?或是 MSQL Server 需要去設定? 謝謝..
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-03 12:40:38 IP:203.95.xxx.xxx 未訂閱
HI, 請問你新增欄位是用什麼元件操作呢? 有沒有錯誤訊息? 是執行成功但沒有新增欄位成功嗎?
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-03 12:42:55 IP:221.169.xxx.xxx 未訂閱
crazycat你好.. Delphi5&MSSQL2000測試ok.. 你的MDAC有更新到2.6以上嗎? 有做過d5adoupdate2.exe更新嗎?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-03 12:57:33 IP:203.204.xxx.xxx 未訂閱
crazycat 你好 欄位名稱用數字是OK的,只要不是第一個字元,但’.’小數點卻不可作欄位名稱,意思是'版本控制1.1'是不法的欄位名稱,但'版本控制11'則可,參考看看!!
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-03 13:08:45 IP:210.66.xxx.xxx 未訂閱
這個語法我測試過了,欄位『版本1.1』在MSSQL 2000上沒問題,是MSSQL7無法接受欄位名稱包含『.』的嗎? Ian
crazycat
一般會員


發表:22
回覆:20
積分:8
註冊:2003-04-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-03 13:36:48 IP:203.70.xxx.xxx 未訂閱
不好意思  我用TQuery & TDataBase 程式如下    SQL_MESS        :='CREATE TABLE VER_CONTROL  (版本 char12)) CREATE UNIQUE CLUSTERED INDEX [VER_CONTRO] ON VER_CONTROL (版本) WITH IGNORE_DUP_KEY'; Edit1.Text :=SQL_MESS;  //===>>SQL輸出指令監視用 Query1.SQL.Clear; Query1.SQL.Add(SQL_MESS); Query1.Prepare; Query1.ExecSQL ; //以上沒問題    SQL_MESS        :='ALTER TABLE VER_CONTROL ADD "版本1.1" Int NULL DEFAULT(0),"版本1.2" int NULL DEFAULT(0)'; Edit1.Text :=SQL_MESS; Query1.SQL.Clear; Query1.SQL.Add(SQL_MESS); Query1.Prepare; Query1.ExecSQL ; end; 錯誤如下 但是我把Edit1.Text內整段複製至SQL_W 執行是成功的
crazycat
一般會員


發表:22
回覆:20
積分:8
註冊:2003-04-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-03 14:03:07 IP:203.70.xxx.xxx 未訂閱
MSSQL 7 欄位可以有'.' 但我又發現問題了 我先手動加入欄位'版本1.1' ,'版本1.2' .... 但是在 SQL_W 卻無法用以前的方式 指定欄位讀取 Select * from VER_CONTROL ===>>正常 Select 版本1.1 from VER_CONTROL ===>>錯誤 Select "版本1.1" from VER_CONTROL ===>>錯誤 Select '版本1.1' from VER_CONTROL ===>>正常 那我啟不是在Delphi裡 要改變我以往的讀取方式? 不好意思.再說明一下我的OS D5,SQL2000 Client 讀取 SQL7 Server
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-03 14:13:47 IP:210.66.xxx.xxx 未訂閱

SQL_MESS :='ALTER TABLE VER_CONTROL ADD [版本1.1] Int NULL DEFAULT(0),[版本1.2] int NULL DEFAULT(0)';    Edit1.Text :=SQL_MESS;
Query1.SQL.Clear;
Query1.SQL.Add(SQL_MESS);
Query1.Prepare;
Query1.ExecSQL ;
試試看!我有用過你 ALTER TABLE VER_CONTROL ADD "版本1.1" Int NULL DEFAULT(0),"版本1.2" int NULL DEFAULT(0)的語法試,用雙引號正常,單引號則會產生錯誤,你參考看看! Ian
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-03 14:20:47 IP:221.169.xxx.xxx 未訂閱
引言:

SQL_MESS :='ALTER TABLE VER_CONTROL ADD [版本1.1] Int NULL DEFAULT(0),[版本1.2] int NULL DEFAULT(0)';    Edit1.Text :=SQL_MESS;
Query1.SQL.Clear;
Query1.SQL.Add(SQL_MESS);
Query1.Prepare;
Query1.ExecSQL ;
試試看!我有用過你 ALTER TABLE VER_CONTROL ADD "版本1.1" Int NULL DEFAULT(0),"版本1.2" int NULL DEFAULT(0)的語法試,用雙引號正常,單引號則會產生錯誤,你參考看看! Ian
l630521已經回答了.. 目前是強烈建議欄位&Table都包[].. 尤其是如果很不幸地用到關鍵字(在Access跟Oracle都碰到過)
crazycat
一般會員


發表:22
回覆:20
積分:8
註冊:2003-04-29

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-03 14:59:10 IP:203.70.xxx.xxx 未訂閱
謝謝l630521 及 StrongLemon 兩位仁兄指導 我於程式裡 使用 單雙引 也皆會出現錯誤 況且程式裡也無法用單引號當String 我改用 CHR(39) == >> 單引號 CHR(34) == >> 雙引號 也都試過了,程式裡就是過不了 .一樣錯誤 現在我全部改用[ ]包起特定字元..就都沒事啦 是不是用程式去操作資料庫.都一定會有一些限制? 在資料庫直接可以執行的整串指令.不一定用程式就可以控制? 再來.可能又要改變以往Select 的習慣了 我馬上於SQL_QUERY 試 Select * from VER_CONTROL ===>>正常 Select 版本1.1 from VER_CONTROL ===>>錯誤 Select "版本1.1" from VER_CONTROL ===>>錯誤 Select '版本1.1' from VER_CONTROL ===>>正常 Select [版本1.1] from VER_CONTROL ===>>正常 因為單引號於程式裡又要另外指定為CHR(39)很麻煩 以後都要改變習慣了 . 謝謝先進不吝指導. PS:我是用程式下指令跟直接於SQL_QUERY上執行 來Debug的
系統時間:2024-07-03 5:17:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!