ALTER TABLE 在access下如何變更Key 值 |
|
css
一般會員 ![]() ![]() 發表:24 回覆:17 積分:8 註冊:2006-08-31 發送簡訊給我 |
下列語法用在 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 發送簡訊給我 |
試試如下的方式:
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 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
試試如下的方式來刪除 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |