SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

連結の結果を NULL と空文字列のどちらとして扱うかを制御します。

ms176056.note(ja-jp,SQL.90).gif重要 :
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SET CONCAT_NULL_YIELDS_NULL { ON | OFF } 

解説

SET CONCAT_NULL_YIELDS_NULL が ON の場合、NULL 値を文字列と連結すると、結果は NULL になります。たとえば、SELECT 'abc' + NULL の結果は NULL になります。SET CONCAT_NULL_YIELDS_NULL が OFF の場合、NULL 値を文字列と連結すると、結果は元の文字列になり、NULL 値は空文字列として扱われます。たとえば、SELECT 'abc' + NULL の結果は abc になります。

SET CONCAT_NULL_YIELDS を指定しなかった場合は、CONCAT_NULL_YIELDS_NULL データベース オプションの設定が適用されます。

ms176056.note(ja-jp,SQL.90).gifメモ :
SET CONCAT_NULL_YIELDS_NULL は、ALTER DATABASE の CONCAT_NULL_YIELDS_NULL 設定と同じ設定です。

SET CONCAT_NULL_YIELDS_NULL は、解析時ではなく実行時に設定されます。

計算列やインデックス付きビューのインデックスを作成または変更するときには、SET CONCAT_NULL_YIELDS_NULL を ON に設定する必要があります。SET CONCAT_NULL_YIELDS_NULL が OFF の場合、計算列にインデックスが設定されているテーブルやインデックス付きビューにおける CREATE、UPDATE、INSERT、および DELETE のステートメントはいずれも失敗します。インデックス付きビューおよび計算列上のインデックスに必要な SET オプション設定の詳細については、「SET (Transact-SQL)」の「SET ステートメントの使用に関する留意事項」を参照してください。

CONCAT_NULL_YIELDS_NULL を OFF に設定した場合、複数のサーバーにまたがって文字列を連結することはできません。

次の例では、両方の SET CONCAT_NULL_YIELDS_NULL 設定を示します。

PRINT 'Setting CONCAT_NULL_YIELDS_NULL ON';
GO
-- SET CONCAT_NULL_YIELDS_NULL ON and testing.
SET CONCAT_NULL_YIELDS_NULL ON;
GO
SELECT 'abc' + NULL ;
GO

-- SET CONCAT_NULL_YIELDS_NULL OFF and testing.
SET CONCAT_NULL_YIELDS_NULL OFF;
GO
SELECT 'abc' + NULL; 
GO

参照

関連項目

SET (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)

その他の技術情報

データベース オプションの設定

ヘルプおよび情報

SQL Server 2005 の参考資料の入手