6

レコードに変更がない場合、SQLはレコードを更新しますか?

たとえば、交換する方が効率的ですか

UPDATE TABLE myTable 
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')

UPDATE TABLE myTable 
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')
WHERE 
Col1 IS NULL OR
...
Col30 IS NULL
4

2 に答える 2

5

はい、上書きを試みます。

于 2012-06-04T13:41:36.677 に答える
1

手動で制御する必要があります。where句では、すべてのフィールドが新しい値と異なる場合にすべてのフィールドを配置できます。また、テーブルのIDがパラメーターと等しい場合は、変更されたレコードのみが更新されるようにします。

    UPDATE table
    SET field1 = @field1,
                 field2 = @field2
    WHERE field1 != @field1 AND
          field2 != @field2 AND
          id = @id
于 2012-06-04T14:02:19.227 に答える