使用MERGE
、col1
を想定すると、デモ
DECLARE @ui TABLE(
col1 INT PRIMARY KEY,
col2 INT
)
INSERT INTO @ui(col1,col2)
VALUES (1,100), (2,200);
-- parameters
DECLARE @c1 INT = 1, @c2 INT = 300;
MERGE @ui AS T
USING (
VALUES (@c1, @c2)
) AS S(col1,col2)
ON (T.col1 = S.col1)
WHEN NOT MATCHED BY TARGET
THEN INSERT(col1,col2) VALUES(S.col1,S.col2)
WHEN MATCHED
THEN UPDATE SET T.col2 = S.col2;
SELECT *
FROM @ui
はちょうどあなたがSQL Serverを混合しているとMySQLを構築
string query = @"MERGE UserPersonalInfo AS T
USING (
VALUES (@c1,@c2,@c3)
) AS S(col1,col2,col3)
ON (T.col1 = S.col1)
WHEN NOT MATCHED BY TARGET
THEN INSERT(col1,col2, col3) VALUES(S.col1,S.col2, S.col3)
WHEN MATCHED
THEN UPDATE SET T.col2 = S.col2, T.col3 = S.col3";
で
string query = ...
を置き換えるあなたのC#コードでは、PKです。どのデータベースを実際に使用していますか? –DBMSとは何ですか? – Siyual
私はSQL Server(SQL Server 2008 R2) – Arc