SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
控制是否將串連結果當作 Null 或空字串值來處理。
重要事項: |
---|
未來的 Microsoft SQL Server 發行版本將不再提供此功能。請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 |
語法
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
請參閱
參考
SET (Transact-SQL)
SESSIONPROPERTY (Transact-SQL)