SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
適用於:Microsoft Fabric Microsoft網狀架構倉儲中的 SQL Server Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) SQL 分析端點
控制是否將串連結果當作 Null 或空字串值來處理。
注意
SET CONCAT_NULL_YIELDS_NULL OFF
和 CONCAT_NULL_YIELDS_NULL OFF 資料庫選項已被取代。 從 SQL Server 2017 (14.x) 開始,CONCAT_NULL_YIELDS_NULL一律設定為 ON。 已被取代的功能不應在新應用程式中使用。 如需詳細資訊,請參閱 SQL Server 2017 中已被取代 資料庫引擎 功能。
Syntax
Azure Synapse Analytics 中的 SQL Server 無伺服器 SQL 集區語法,Microsoft Fabric
SET CONCAT_NULL_YIELDS_NULL { ON | OFF }
Azure Synapse Analytics 和 Analytics Platform System (PDW) 的語法
SET CONCAT_NULL_YIELDS_NULL ON
備註
當 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_NULL,則會套用 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 時,無法出現跨越伺服器界限的字串串連。
若要檢視此設定的目前設定,請執行下列查詢。
DECLARE @CONCAT_SETTING VARCHAR(3) = 'OFF';
IF ( (4096 & @@OPTIONS) = 4096 ) SET @CONCAT_SETTING = 'ON';
SELECT @CONCAT_SETTING AS CONCAT_NULL_YIELDS_NULL;
範例
下列範例顯示如何使用這兩個 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