0

私のコードでは、起動時にいくつかのデータベース メンテナンスを実行するルーチンがあり、次のコードを使用してテーブルから主キーを削除します。

USE Students EXCLUSIVE
ALTER TABLE Students DROP PRIMARY KEY

これが一度だけ実行され、キーがそこにあれば、人生は良いです。ただし、既に削除されている場合は、エラー コード 1879 が生成されます。これをテストして RETURN を実行すると、問題が解決します。

ただし、ALTER TABLE コマンドを発行する前にキーの存在をテストできるようにしたいと考えています。

ヘルプ ファイルと MSDN を検索しても役に立ちませんでした。主キーの存在を確認するコードがないとは思えませんが、見つからないことは確かです。

ありがとう

4

2 に答える 2

1

ATAGINFO()TAG()、およびPRIMARY()関数を使用して、プライマリ キー インデックスを特定できます。Primary() のヘルプから:

CLOSE DATABASES
SET PATH TO (HOME(2) + 'Data\')   && Sets path to database
OPEN DATABASE testdata  && Open testdata database
USE Customer     && Open customer table

FOR nCount = 1 TO 254
   IF !EMPTY(TAG(nCount))  && Checks for tags in the index
   ? TAG(nCount)  && Display tag name
   ? PRIMARY(nCount)     && Display primary status
   ELSE
      EXIT  && Exit the loop when no more tags are found
   ENDIF
ENDFOR

HTH

于 2013-02-18T20:38:15.493 に答える
0

最初にその存在を確認できます:

If !Empty(  DBGetProp("Students","TABLE","PrimaryKey") )
  Alter table students drop primary key
endif
于 2013-02-21T14:21:04.200 に答える