データベースに10個のフィールドがあり、UIページに10個のボタンがあります。データベースフィールドを個別に更新しようとしています。私は1つのボタンをクリックすると1つのフィールドを更新し、2つ目は別のものを更新しますが、1つのSQL更新クエリのみを使用します。これはSQLサーバー2008 で可能ですかはいの場合は親切にお勧めします。複数の行を1つのSQLクエリで異なるタイプの値で更新する
Thnx
データベースに10個のフィールドがあり、UIページに10個のボタンがあります。データベースフィールドを個別に更新しようとしています。私は1つのボタンをクリックすると1つのフィールドを更新し、2つ目は別のものを更新しますが、1つのSQL更新クエリのみを使用します。これはSQLサーバー2008 で可能ですかはいの場合は親切にお勧めします。複数の行を1つのSQLクエリで異なるタイプの値で更新する
Thnx
この
UPDATE yourtable set
field1 = COALESCE(@Button1Param, field1),
field2 = COALESCE(@Button2Param, field2),
...
field10 = COALESCE(@Button10Param, field10)
WHERE Your filter clause
を試してみて、Button1を押すと= DBNull.Valueのは
だから、あなたが使用していない他の人を残し、唯一のクエリに@ Button1Paramパラメータの値を提供し、動的または異なる複数のクエリ
動的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つのボタンをコミットして、すべての列を一度に更新しないでください。