2012-01-05 8 views
0

データベースに10個のフィールドがあり、UIページに10個のボタンがあります。データベースフィールドを個別に更新しようとしています。私は1つのボタンをクリックすると1つのフィールドを更新し、2つ目は別のものを更新しますが、1つのSQL更新クエリのみを使用します。これはSQLサーバー2008 で可能ですかはいの場合は親切にお勧めします。複数の行を1つの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個のフィールドを編集してから、アプリケーション内に1つのボタンをコミットして、すべての列を一度に更新しないでください。

関連する問題