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

ALTER TABLE 在access下如何變更Key 值

 
css
一般會員


發表:24
回覆:17
積分:8
註冊:2006-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-11 22:37:11 IP:220.132.xxx.xxx 訂閱
下列語法用在 sql2000資料庫可行  原:ADOQuery1.SQL.Add('ALTER TABLE SalInternet WITH NOCHECK ADD ');
ADOQuery1.SQL.Add('CONSTRAINT FK_SalInternet Primary Key CLUSTERED ');
ADOQuery1.SQL.Add('(SidSort,Sidno) on [Primary] '); ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE SalInternet drop Constraint FK_SalInternet ');
ADOQuery1.ExecSQL; 可變更SQL2000 Primary Key

但ACCESS就是不行
ADOQuery1.SQL.Add('ALTER TABLE SalInternet NOCHECK Primary Key (SidYeara,SidSort,Sidno) ');
請問Access如何改變 Primary Key ?
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('ALTER TABLE SalInternet nocheck Primary key(SidYeara,SidSort,Sidno)');
ADOQuery1.ExecSQL;
不行 ?




hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-12 14:30:31 IP:59.124.xxx.xxx 未訂閱
試試如下的方式: 
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
// 刪除 Primarykey
s := 'ALTER TABLE SalInternet DROP CONSTRAINT PrimaryKey ';
ADOConnection1.Execute(s);
// 新增 Primarykey
s := 'ALTER TABLE table1 ADD CONSTRAINT NewPK PRIMARY KEY (SidYeara, SidSort, Sidno)');
ADOConnection1.Execute(s);
ShowMessage('done!');
end;

css
一般會員


發表:24
回覆:17
積分:8
註冊:2006-08-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-12 22:27:07 IP:220.132.xxx.xxx 訂閱

謝謝 大大
在 刪除 Primary key 時 { 會出現 CHECK 條件Primarykey 不存在 } 錯誤訊息 ? 不知
s := 'ALTER TABLE SalInternetDROP CONSTRAINT PrimaryKey ';
ADOConnection1.Execute(s);

新增 Primarykey 已 ok 可行

hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-15 08:41:08 IP:59.124.xxx.xxx 未訂閱
試試如下的方式來刪除 Primary Key
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
ADOConnection1.OpenSchema(siPrimaryKeys, EmptyParam, EmptyParam, ADODataSet1);
ADODataSet1.Open;
if not ADODataset1.Locate('TABLE_NAME', 'table1', []) then
ShowMessage('No Primarykey Specified!')
else
begin
s := 'ALTER TABLE table1 DROP CONSTRAINT ' ADODataset1.FieldByName('PK_NAME').AsString;
ADOConnection1.Execute(s);
ShowMessage('done!');
end;
end;

css
一般會員


發表:24
回覆:17
積分:8
註冊:2006-08-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-17 08:25:22 IP:220.132.xxx.xxx 訂閱
謝謝 hagar 幫我解決我困擾多時問題
真的謝謝妳

系統時間:2024-05-19 18:52:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!