+= (文字列連結代入) (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric のSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
2 つの文字列を連結し、その結果の文字列を演算の結果に設定します。 たとえば、変数 @x が 'Adventure' である場合、@x += 'Works' は @x の元の値を取得し、その文字列に 'Works' を追加して、@x に 'AdventureWorks' という新しい値を設定します。
構文
expression += expression
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
式 (expression)
任意の文字データ型の任意の有効な式です。
戻り値の型
変数に対して定義されているデータ型を返します。
解説
SET @v1 += 'expression' は SET @v1 = @v1 + ('expression') と同じです。 また、SET @v1 = @v2 + @v3 + @v4 は SET @v1 = (@v2 + @v3) + @v4 と同じです。
+= 演算子を変数なしで使用することはできません。 たとえば、次のコードはエラーになります。
SELECT 'Adventure' += 'Works'
例
A. += 演算子を使用した連結
次の例では、+=
演算子を使用して文字列を連結しています。
DECLARE @v1 VARCHAR(40);
SET @v1 = 'This is the original.';
SET @v1 += ' More text.';
PRINT @v1;
結果セットは次のようになります。
This is the original. More text.
B. += 演算子を使用して連結するときの評価の順序
次の例では、複数の文字列を連結して 1 つの長い文字列を形成し、最終的な文字列の計算を試行します。 この例では、連結演算子を使用するときの評価順序と切り捨てルールを示します。
DECLARE @x VARCHAR(4000) = REPLICATE('x', 4000)
DECLARE @z VARCHAR(8000) = REPLICATE('z',8000)
DECLARE @y VARCHAR(max);
SET @y = '';
SET @y += @x + @z;
SELECT LEN(@y) AS Y; -- 8000
SET @y = '';
SET @y = @y + @x + @z;
SELECT LEN(@y) AS Y; -- 12000
SET @y = '';
SET @y = @y +(@x + @z);
SELECT LEN(@y) AS Y; -- 8000
-- or
SET @y = '';
SET @y = @x + @z + @y;
SELECT LEN(@y) AS Y; -- 8000
GO
結果セットは次のようになります。
Y
-------
8000
(1 row(s) affected)
Y
-------
12000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
Y
-------
8000
(1 row(s) affected)
参照
演算子 (Transact-SQL)
+= (加算代入) (Transact-SQL)
+ (文字列連結) (Transact-SQL)