怎样用SQL删除access2000数据库中表的主键?表名为temp,主键为name字段.

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      PKName : string;
    begin
      ADOConnection1.OpenSchema(siTableConstraints, EmptyParam, EmptyParam, TADODataSet(ADOQuery1));
      if ADOQuery1.Locate('TABLE_NAME', 'temp', []) then
      begin
        if ADOQuery1.FieldByName('CONSTRAINT_TYPE').AsString = 'PRIMARY KEY' then
          PKName := ADOQUERY1.FieldByName('CONSTRAINT_NAME').AsString;
        ADOQuery1.Close;
        ADOQuery1.Connection := ADOConnection1;
        ADOQuery1.SQL.Text := 'ALTER TABLE temp DROP CONSTRAINT ' + PKName;
        ADOQuery1.ExecSQL ;
      end;
    end;
      

  2.   

    ADOConnection1要先设置好ConnectionString,呵呵。
      

  3.   

    一个表中的主键全部定义在表的约束中。删除和设置主键都要在约束中。约束名一般都是(表名_PK),可以在 查询分析器—对象浏览器—表—约束 中查看。下面的语句是添加主键约束,删除约束只需要将ADD添加命令换成删除命令即可。ALTER TABLE 表名 
    ADD CONSTRAINT [约束名] PRIMARY KEY  NONCLUSTERED 
    ([字段名]) ON [PRIMARY] 
    GO
      

  4.   

    楼上的语句更加简单,刚才再想问题没有刷新页面,有人回复了也不知道。
    直接用 (ALTER TABLE syslog drop CONSTRAINT [约束名])可直接删除,如果要删除temp的主键约束名=(temp_PK)应该 ,然后再用我刚才说的添加语句来重新设置主键