SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

控制是否將串連結果當作 Null 或空字串值來處理。

重要注意事項重要事項

在將來的 SQL Server 版本中,CONCAT_NULL_YIELDS_NULL 一定會是 ON,而且明確將此選項設定為 OFF 的應用程式將會產生錯誤。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

主題連結圖示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 資料庫選項的設定。

[!附註]

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