ホームページ > データベース > mysql チュートリアル > SQL Server チェック制約でサブクエリを使用するにはどうすればよいですか?

SQL Server チェック制約でサブクエリを使用するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-04 18:31:40
オリジナル
303 人が閲覧しました

How Can I Use Subqueries in SQL Server Check Constraints?

チェック制約でのサブクエリの使用

SQL Server 2008 R2 で、次のようなサブクエリを使用してチェック制約を定義しようとします。

ALTER TABLE Table1
WITH CHECK ADD CONSTRAINT CK_Code
CHECK (MyField in (Select Field From Table2))
ログイン後にコピー

この場合、サブクエリが許可されていないことを示すエラーが発生しますcontext.

代替解決策: スカラー関数

トリガーなしでこの検証を実現するには、サブクエリをカプセル化するスカラー関数を作成し、チェック制約内で使用できます。以下に例を示します。

CREATE FUNCTION myFunction(
    @field DATATYPE(?)
)
RETURNS VARCHAR(5)
AS
BEGIN
    IF EXISTS (SELECT * FROM Table2 WHERE MYFIELD = @field)
        RETURN 'True'
    RETURN 'False'
END
ログイン後にコピー

関数をチェック制約に適用する

関数を定義したら、次のようにチェック制約で使用できます。

ALTER TABLE Table1
WITH CHECK ADD CONSTRAINT CK_Code
CHECK (myFunction(MYFIELD) = 'True')
ログイン後にコピー

関数によって返されたスカラー値を特定の文字列 (例: 「True」) と照合することで、目的の検証が行われます。チェック制約内で直接サブクエリを必要とせずに適用されます。

以上がSQL Server チェック制約でサブクエリを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート