これを実行すると、次のようになります。
メッセージ 515、レベル 16、状態 2、行 8
列 'uNSID'、テーブル 'Flickr.dbo.User_Grps' に値 NULL を挿入できません。列はヌルを許可しません。更新は失敗します。
ステートメントは終了されました。
これは私のSQL文です:
MERGE
INTO User_Grps as ug
USING [ExcImport-S2 (3)] as i
ON (
ug.uNSID = i.uNSID
and ug.prime_ID = i.prime_ID
and i.uNSID is not null
)
WHEN MATCHED and i.uNSID is not null THEN
UPDATE SET ug.uNSID = i.uNSID
, ug.gNSID = i.gNSID
, ug.gAlias = isnull(i.gAlias,ug.gAlias)
, ug.Prime_ID = i.Prime_ID
WHEN NOT MATCHED THEN
INSERT (uNSID
, gNSID
, gAlias
, Prime_ID
)
VALUES (i.uNSID
, i.gNSID
, i.gAlias
, i.Prime_ID
);
GO
null レコードを吸い込まないようにするにはどうすればよいですか?
また、最後に次のようなものを取得できるように、カウンターを構成するにはどうすればよいUpdated x,xxx records & added xxx
ですか?
編集して追加 --------------
@ケビン:これは、あなたの反応を理解したので、修正した後の私のコードです。
そのまま実行すると、次のエラーが発生します。
Msg 102, Level 15, State 1, Line 2 Incorrect syntax near '$ACTION'.
Msg 137, Level 15, State 1, Line 5 Must declare the scalar variable "@InsertCount".
Msg 1087, Level 15, State 2, Line 9 Must declare the table variable "@RowCounts".
行間の部分をコメントアウトすると-- ############################################
、次のエラーが発生します。
Msg 2627, Level 14, State 1, Line 13 Violation of PRIMARY KEY constraint 'PK_User_Grps'. Cannot insert duplicate key in object 'dbo.User_Grps'. The duplicate key value is (GT10464608)
SET NOCOUNT ON ;
DECLARE @RowCounts TABLE
(
MergeAction NVARCHAR(10)
) ;
DECLARE @InsertCount INT ,
@UpdateCount INT;
Merge
into User_Grps as ug
using [ExcImport-S2] as i
on (
ug.uNSID = i.uNSID
and ug.prime_ID = i.prime_ID
and i.uNSID is not null
)
WHEN MATCHED THEN
UPDATE SET ug.gNSID = i.gNSID
, ug.gAlias = isnull(i.gAlias,ug.gAlias)
, ug.last_ud = GETDATE ( )
WHEN NOT MATCHED THEN
-- UPDATE SET @i += 1;
INSERT (uNSID
, gNSID
, gAlias
, Prime_ID
, Last_UD
)
VALUES (i.uNSID
, i.gNSID
, i.gAlias
, i.Prime_ID
, GETDATE ( )
);
-- ############################################
OUTPUT