網頁

2015年5月18日 星期一

Henplus下使用Alter Table

因為連接sybase的環境只有文字介面,所以使用henplus來操作,不過這次想要新增個欄位,執行了底下的sql後
henplus> alter table test add specs char(2) null;

卻一直出現底下的訊息:
FAILURE: The 'ALTER TABLE' command is not allowed within a multi-statement transaction in the 'db' database.

查了半天,看不出所以然來,似乎跟transaction有關,想到henplus預設auto-commit是off,於是執行了底下的指令
henplus>set-session-property auto-commit on;

用底下的指令查一下設定,只要看到on就成功了
henplus>set-session-property
-----------------+----------------+-----------------------------------------------+
      Name       |     Value      |                  Description                  |
-----------------+----------------+-----------------------------------------------+
 auto-commit     | on             | Switches auto commit                          |
 isolation-level | read-committed | sets the transaction isolation level          |
 read-only       | off            | Switches on read only mode for optimizations. |
-----------------+----------------+-----------------------------------------------+

再執行
henplus> alter table test add specs char(2) null;

回覆,這樣就成功囉~
ok. (13 msec)

=====2015/6/2 新增======

若是要改變column name,使用rename column一直無法成功,只能使用sp_rename這個內建函式,使用方式如下
henplus> sp_rename 'test.specs', 'test.specs2';

回覆如下就成功了
affected 1 rows (119 msec)

=====2015/6/2 新增======

=====2015/6/9 新增======

使用Henplus下複製整個Table資料到新的資料庫所提及的複製方式會有個問題,就是primary key無法跟著複製過去,所以要再加上primary key可以用底下的sql
henplus> alter table test add primary key (id);

=====2015/6/9 新增======

參考網址:
Adaptive Server Enterprise 15.7 > Reference Manual: Commands > Commands > alert table

沒有留言:

張貼留言