[解決済み] Sqlサーバーに制約が存在するかどうかを確認する方法は?
2022-02-19 14:12:59
質問
次のようなSQLがあります。
ALTER TABLE dbo.ChannelPlayerSkins
DROP CONSTRAINT FK_ChannelPlayerSkins_Channels
が、どうやら、私たちが使っている他のいくつかのデータベースでは、この制約は違う名前を持っているようです。という名前の制約があるかどうかを確認するにはどうしたらよいでしょうか?
FK_ChannelPlayerSkins_Channels
.
解決方法は?
これを試してみてください。
SELECT
*
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME ='FK_ChannelPlayerSkins_Channels'
-- EDIT --
最初にこの質問に答えたとき、私は"外部キー"と考えていました。 その後、多くの人が他のquot;制約を見つけることについてコメントしています。
--Returns one row for each CHECK, UNIQUE, PRIMARY KEY, and/or FOREIGN KEY
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'
--Returns one row for each FOREIGN KEY constrain
SELECT *
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'
--Returns one row for each CHECK constraint
SELECT *
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS
WHERE CONSTRAINT_NAME='XYZ'
別の方法はこちら
--Returns 1 row for each CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY, and/or DEFAULT
SELECT
OBJECT_NAME(OBJECT_ID) AS NameofConstraint
,SCHEMA_NAME(schema_id) AS SchemaName
,OBJECT_NAME(parent_object_id) AS TableName
,type_desc AS ConstraintType
FROM sys.objects
WHERE type_desc LIKE '%CONSTRAINT'
AND OBJECT_NAME(OBJECT_ID)='XYZ'
さらに多くの制約情報が必要な場合は、システムストアドプロシージャの内部を見てください。
master.sys.sp_helpconstraint
を参照して、特定の情報を取得する方法を確認します。 SQL Server Management Studio を使用してソースコードを表示するには、オブジェクトエクスプローラーにアクセスします。 そこから、「Master」データベースを展開し、「Programmability」、「Stored Procedures」、「System Stored Procedures」の順に展開します。 次に、"sys.sp_helpconstraint" を見つけて右クリックし、"modify" を選択します。 ただし、変更を保存しないように注意してください。 また、このシステム ストアド プロシージャを任意のテーブルで使用するには、次のように使用します。
EXEC sp_helpconstraint YourTableNameHere
.
関連
-
[解決済み] MS SQL Server 2005で行のSNoを自動的に設定する方法は?
-
[解決済み] SQL ServerでRegExを使用する
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] SQL Serverでシングルクォートをエスケープするにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プロシージャは 'ntext/nchar/nvarchar' 型のパラメータ '@statement' を想定しています。
-
[解決済み] 「ストアドプロシージャが見つかりませんでした
-
[解決済み] リンクサーバーとしてローカルデータベースを使用する場合、「Deferred prepare could not be completed」エラーが発生する。
-
[解決済み] ミリタリータイムを使用するDatetimeフィールド - 標準時間のみが必要です。
-
[解決済み] UPDATEエラーです。"REPLACEの引数1の引数データ型textは無効です"
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] SQLでNaN値をNULLに、またはNaNを0に変換する
-
[解決済み] データベースとスキーマの違い
-
[解決済み] SQL ServerでCreateステートメントを使用してtempテーブルを作成する方法は?
-
[解決済み] SQL Server Management StudioでIntelliSenseが機能しない