HIRO's.NET Blog

PowerShellが好き

目次

Blog 利用状況

ニュース

あわせて読みたい

書庫

日記カテゴリ

リンク

テーブルにIDENTITYの指定がされた列があるかを調べる (SQL Server 2005)

本日ちょっとハマったので覚え書きです。

あるテーブルにデータをINSERTしようとしたら、IDENTITY指定の列があるので挿入できないとのエラーが出た。

(普段Oracleをメインに使用しているのでいまいち理解せず書いています..)

IDENTITY列とは「自動で採番してくれる列」 なのでそこへ自作SQL文を発行したためエラーになった模様。

 

とりあえず指定したテーブルにIDENTITY列が含まれるかどうかを調べてみた結果

select ident_current('テーブル名')

として

数値が返されたら、IDENTITY列を含むテーブル

NULLが返されたらIDENTITY列を含まないテーブル

ということらしい。

 

合ってますかね?

間違っているようでしたらご指摘願います。


 

投稿日時 : 2008年1月8日 23:04

コメントを追加

# テーブルにIDENTITYの指定がされた列があってもINSERTする(SQL Server 2005) 2008/01/08 23:14 HIRO's.NET Blog

テーブルにIDENTITYの指定がされた列があってもINSERTする(SQL Server 2005)

# re: テーブルにIDENTITYの指定がされた列があるかを調べる (SQL Server 2005) 2008/01/08 23:31 けろ-みお

>NULLが返されたらIDENTITY列を含まないテーブル

それであってるんですが、できれば、sp_helpで
調べませんか?
Identity列がなければ、結果の「IDENTITY」欄に
「No identity column defined.」と
出てくるはずなので・・・

# re: テーブルにIDENTITYの指定がされた列があるかを調べる (SQL Server 2005) 2008/01/08 23:34 けろ-みお

sp_help は、
sp_help N'[スキーマ名].[テーブル名]'
でいけます。(ストアドやファンクションもこれで
いろいろと調べられます)

# re: テーブルにIDENTITYの指定がされた列があるかを調べる (SQL Server 2005) 2008/01/08 23:45 HIRO

>けろさん
Good Tips ありがとうございます。

sp_helpというモノがあるんですね。

ネットで select ident_current('テーブル名')
が使えることを知り試行錯誤しておりました。

sp_helpはストアドプロシージャなんですね。
ほかにもいろいろありますね spで始まるストアドプロシージャ。

勉強になります。

タイトル
名前
URL
コメント