SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

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

ms176056.note(zh-tw,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(zh-tw,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 協助