2012-01-05 3 views
0

데이터베이스에 10 개의 필드가 있고 UI 페이지에 10 개의 다른 버튼이 있습니다. 데이터베이스 필드를 개별적으로 업데이트하려고합니다. 1 버튼을 클릭하면 한 필드를 업데이트하고 다른 필드는 두 번째로 업데이트합니다. 단 하나의 SQL 업데이트 쿼리 만 사용합니다. SQL 서버 2008 에서 가능합니까? 그렇다면 친절하게 제안하십시오.단일 SQL 쿼리로 여러 유형의 값으로 여러 행을 업데이트

Thnx

답변

1

UPDATE yourtable set 
    field1 = COALESCE(@Button1Param, field1), 
    field2 = COALESCE(@Button2Param, field2), 
    ... 
    field10 = COALESCE(@Button10Param, field10) 
WHERE Your filter clause 

을 시도하고 Button1을 누르면 = DBNull.Value가

그래서, 당신은 사용하지 않은 다른 사람을 떠나, 단지 쿼리 @ Button1Param 매개 변수에 대한 값을 제공 동적 또는 다른 여러 검색어 :

0

동적 SQL을 통해서만, 그리고 그다지 사소한 것은 아닙니다.

당신은 (특히 사용자의 요구 사항을 요구하지 않는 한) 그러나 이것은 정말 나쁜 디자인 그래서 쿼리에

DECLARE @SQL = NVARCHAR(MAX) 
SET @SQL = 'UPDATE [db].[dbo].[table] SET ' + @__upd_button_col + ' = ''' + @__upd_button_Value + ''' WHERE ID = ''' + @__upd_ID + '''' 
sp_executesql @SQL 

처럼 보일 것, 그것이 표현하는 열을 말한다 각 버튼에 부착 된 코드가 필요합니다. 10 개의 필드를 편집 한 다음 응용 프로그램에서 버튼을 한 번만 클릭하고 모든 열을 한꺼번에 업데이트하지 않는 이유는 무엇입니까?

관련 문제