全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:8349
推到 Plurk!
推到 Facebook!

如何以SQL語法去更改TABLE名稱

答題得分者是:Mickey
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-19 11:27:40 IP:211.23.xxx.xxx 未訂閱
如題... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-19 11:35:32 IP:218.16.xxx.xxx 未訂閱
MySQL 是用 Rename talble Old_Table_Name to New_table_Name 我不知道別的 DBMS 可否用相同或相類的語法,因這好像不是標準 ANSI-92 語法。
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-19 11:39:44 IP:211.23.xxx.xxx 未訂閱
引言: MySQL 是用 Rename talble Old_Table_Name to New_table_Name 我不知道別的 DBMS 可否用相同或相類的語法,因這好像不是標準 ANSI-92 語法。
哦~~抱歉~~我忘了說~~我用的是SYBASE~~ 倒也不一定要用SQL去更改名稱~~ 如果有別的方法也可以考慮~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-19 11:43:19 IP:61.219.xxx.xxx 未訂閱
1. 先說明用何種資料庫(DBMS), 可節省一些問答時間喔
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-19 21:14:46 IP:61.59.xxx.xxx 未訂閱
我用的方法…比較…土 :p    不過…應該是不受資料庫類型的影響    例: Select * into BB from AA  ---->建立table BB drop table aa             ---->刪掉原資料庫AA    AA--->BB  更名成功   < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8147403&CC=182217">
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-19 21:30:51 IP:218.16.xxx.xxx 未訂閱
我最初也是這樣想,打了一半時突然想後 referential integrity 的問題,想想可能這樣做不成,所以便轉用直接改名的。但我懂太少 DBMS 的本地用語所以提議沒甚麼用 
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-20 08:27:36 IP:61.219.xxx.xxx 未訂閱
引言: 若 create 另一table 後 drop table 會對 referential integrity 有影響嗎?
Store procedure / triggers (會受影響), Foreign Key (很可能會受影響,不確定). 所以 Table Relation referential integrity, 個人覺得用 Trigger 比較妥當.
引言: Select * into BB from AA
Sybase 須先將 Database Option "select into/bulkcopy/pllsort" turn on 喔. sp_dboption [DatabaseName], "select into/bulkcopy/pllsort", true 另 "select into" 只是 create table and copy data, index/trigger...都沒有喔. /* Free 和 Create 一樣重要 */ 發表人 - Mickey 於 2003/03/20 08:31:50
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-20 09:06:39 IP:211.23.xxx.xxx 未訂閱
跟各位報告我RUN的結果    1.sp_rename [OldTableName] , [NewTableName] 這個行不通...錯誤訊息如下... [Native Error code:203] [DataDirect ADO Sybase Provider] The name 'sp_rename [OldTableName] , [NewTableName]' is not a valid identifier 2.Select * into BB from AA 須先將 Database Option "select into/bulkcopy/pllsort" 選項打開... 另外...我用BDE竟然不支援 Select * Into ... ~~>_<~~ 我苦... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-20 09:25:10 IP:218.16.xxx.xxx 未訂閱
select * into BB from AA 還有個相類的 : create table BB as select * from AA BDE 應只對 localsql (paradox, dbase 等) 作 SQL 句法檢查而不對經ODBC連接的數據庫作句法檢查的丫,不知為甚麼會否定 select into 的句式....
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-20 09:34:14 IP:218.16.xxx.xxx 未訂閱
這個應更好 : ALTER TABLE OldTableName RENAME NewTableName; 來源 : Sybase Webforums http://webforums.sybase.com/nntp/nd000051.nsf/85255e6f0052055e85255d7f005ed8bc/f2b512d01b7afee593aa55cbcdadd4de?OpenDocument
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-03-20 09:40:19 IP:61.219.xxx.xxx 未訂閱
引言: 跟各位報告我RUN的結果 1.sp_rename [OldTableName] , [NewTableName] 這個行不通...錯誤訊息如下... [Native Error code:203] [DataDirect ADO Sybase Provider] The name 'sp_rename [OldTableName] , [NewTableName]' is not a valid identifier 2.Select * into BB from AA 須先將 Database Option "select into/bulkcopy/pllsort" 選項打開... 另外...我用BDE竟然不支援 Select * Into ... ~~>_<~~ 我苦... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
哇咧...'sp_rename [OldTableName] , [NewTableName]' [OldTableName] : 你要傳進舊的 TableName. [NewTableName] : 你要傳進新的 TableName. /* Free 和 Create 一樣重要 */
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-03-20 11:27:45 IP:211.23.xxx.xxx 未訂閱
引言: 哇咧...'sp_rename [OldTableName] , [NewTableName]' [OldTableName] : 你要傳進舊的 TableName. [NewTableName] : 你要傳進新的 TableName. /* Free 和 Create 一樣重要 */
我知道啦...我只是懶的打...直接用COPY的啦...嘻... 不要打我... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-03-20 13:49:02 IP:61.219.xxx.xxx 未訂閱
引言: ALTER TABLE OldTableName RENAME NewTableName;
試的結果, 有 SQL Error 耶 : Server Message: Number 102, Severity 15 Line 1: Incorrect syntax near '[NewTableName]'. sp_rename [OldTableName] , [NewTableName] 我試沒問題說... 再加單引號試試: execute sp_rename '[OldTableName]' , '[NewTableName]' /* Free 和 Create 一樣重要 */
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-03-21 09:48:54 IP:211.22.xxx.xxx 未訂閱
引言: sp_rename [OldTableName] , [NewTableName] 我試沒問題說... 再加單引號試試: execute sp_rename '[OldTableName]' , '[NewTableName]' /* Free 和 Create 一樣重要 */
呼~~終於試出來了~~ 我用了ADO跟BDE元件去試...要用以下語法... execute sp_rename 'OldTableName' , 'NewTableName' 不用加'['...要加單引號才行... 在這裡謝謝眾多前輩的指導... -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
系統時間:2024-04-25 7:20:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!