sql >> データベース >  >> RDS >> Sqlserver

SQLServerでONDELETESETNULLオプションを使用して外部キー制約を作成する方法-SQLServer/TSQLチュートリアルパート81

    シナリオ:

    SQL Server開発者として作業している場合は、プライマリキーと外部キーの関係を使用して2つのテーブルを作成する必要があります。レコードが参照テーブル(主キー列テーブル)から削除される場合は、設定を使用して外部キー制約を作成します。レコードは親テーブル(外部キー制約テーブル)から削除しないでください。代わりに、値をNullに更新する必要があります。
    >

    解決策:

    ON DELETE SET NULLを外部キー制約定義とともに使用して、上記の要件を実装できます。
    以下のスクリプトを使用して実行しましょう。
    USE YourDatabaseName
    GO
    
    CREATE TABLE dbo.Customer (
        Customerid INT PRIMARY KEY
        ,FName VARCHAR(100)
        ,LName VARCHAR(100)
        ,SSN VARCHAR(10)
        )
    
    
        CREATE TABLE dbo.Orders (
        OrderId INT Identity(1, 1)
        ,OrderitemName VARCHAR(50)
        ,OrderItemAmt INT
        ,Customer_id INT FOREIGN KEY REFERENCES
         Customer(CustomerId) ON DELETE SET NULL
        )
    
        --insert sample data
         insert into dbo.Customer 
        (CustomerId,FName, LName,SSN)
         values
        (1,'Aamir','Shahzad','000-000-00')
    
        insert into dbo.Orders
        (OrderItemName,OrderItemAmt,Customer_Id)
        values ('TV',1,1)
     
     
     Select query 
    を使用して、テーブルのデータを確認します。
    SQLServerでONDELETESETNULLを使用して外部キー制約を作成する方法


    参照テーブル(主キー列テーブル)から行を削除し、レコードが親テーブル(外部キー制約テーブル)にまだ存在し、列値がNullに更新されているかどうかを確認しましょう。
        --Delete the Record from Referenced Table(PK Column Table)
        Delete from dbo.Customer
        where CustomerId=1

    SQLServerの外部キー制約でONDELETESETNULLオプションを使用する方法

    レコードが参照テーブル(主キー列テーブル)から削除されているが、親テーブル(外部キー制約テーブル)にはまだ存在していることがわかりますが、値は期待どおりにNullに更新されます。

    ビデオデモ:SQLServerでONDELETESETNULLオプションを使用して外部キー制約を作成する方法
    1. null値を置き換えながら、2つの行を1つにマージします

    2. Postgresqlの見出しを含むCSVとしてテーブルをエクスポートするにはどうすればよいですか?

    3. ReadyCloud ReadyShipper X

    4. Android:SQLiteは文字列配列を保存しますか?