두 개의 테이블이 있습니다. 첫 번째 테이블에서 나는 열 ID, 이름, ID (첫 번째 테이블에서) 존재하는 경우 두 번째 테이블에서 확인하려면 다음 이름을 업데이트 할 싶어요. ID가없는 경우 ID, 이름을 삽입하십시오.id (각 SQL 행에 대해)가있을 경우 update
이 코드를 사용하고 있지만 작동하지 않습니다.
System.Data.SqlClient.SqlCommand CheckNone = new System.Data.SqlClient.SqlCommand("IF EXISTS(SELECT id from test) SELECT 1 ELSE SELECT 0", con);
con.Open();
var result = (int)CheckNone.ExecuteScalar();
if (result == 0)
{
cmd = new SqlCommand(" insert into test(id,name) select id,name from Tamio.dbo.memberform", con);
cmd.ExecuteNonQuery();
con.Close();
}
else
{
SqlCommand cmd = new SqlCommand(" update test set test.name select memberform.name from Tamio.dbo.memberform", con);
cmd.ExecuteNonQuery();
con.Close();
1) 왜 3 개의 쿼리로 분할했는지, 왜 3 개의 단일 쿼리로 만들지 않습니까? 2) "작동하지 않는다"에 대해 더 구체적으로 설명해야합니다. 어떤 방식으로 작동하지 않습니까? 구체적인 행동이나 오류를 알려주십시오. –
이 코드는 두 문장으로 작동합니다. 처음에는 insert를 만들고, 두 번째는 update합니다. 이 두 가지 상황을 결합하고 싶습니다. 어떻게하면 3 줄짜리 단일 쿼리로 만들 수 있습니까? – Dim
Sql 서버에는 이러한 종류의 (특히 "upsert"라고도 함) 전용으로 설계된 [merge] (https://msdn.microsoft.com/en-us/library/bb510625.aspx) 문이 있습니다. –