2009/04/29

[SQL]主キー(PrimaryKey)制約名を取得する

主キーを追加したり変更したりする際に、一度キー制約を削除して付け直す必要があると思います。しかしキー制約名はそれぞれのDBによって違うかも・・・と言う場合はキー制約名を取得する必要が出てきます。
(本来、上記のどの状況も無いに越したことはありませんが)

Declare @PrimaryKeyName varchar (50)
Set @PrimaryKeyName =
(
  Select
   [name]
  From
   [sysobjects]
  Where
   [xtype] = 'PK'
  And
   [parent_obj] =
   (
     Select
      [id]
     From
      [sysobjects]
     Where
      [name] = 'HogeTable'
   )
)
If (@PrimaryKeyName <> '')
Select
  @PrimaryKeyName As PrimaryKeyName
Else
Select
  'Not Found' As PrimaryKeyName

実行結果:
見つかった場合
PrimaryKeyName
1 PK_HogeTable

実行結果:
見つからなかった場合
PrimaryKeyName
1 Not Found
MSSQLの場合です。

達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)SQLパズル 第2版 プログラミングが変わる書き方/考え方プログラマのためのSQL 第2版SQL Hacks ―データベースを自由自在に操るテクニック

0 件のコメント:

コメントを投稿