Czy aktualizacja SQL będzie rekordem, jeśli nie będzie żadnych zmian w rekordzie?Czy aktualizacja SQL będzie rekordem, jeśli nowe wartości są takie same?
Dla examople, jest to bardziej wydajne, aby zastąpić
UPDATE TABLE myTable
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')
z
UPDATE TABLE myTable
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')
WHERE
Col1 IS NULL OR
...
Col30 IS NULL
Tak. T-SQL nie próbuje ustalić, czy wartości kolumn zostały zmienione. Jeśli określisz wiersz, który ma zostać zaktualizowany w instrukcji 'UPDATE', ** zostanie ** zaktualizowany - niezależnie od tego, czy jest potrzebny czy nie. Jeśli nie jest to potrzebne w pierwszej kolejności - wtedy ** nie wkładaj tego do swojej instrukcji SQL –
Tak, zaktualizuje tabelę. Bardziej efektywne jest inne pytanie. Pamiętaj, że wyzwalacze nie zostaną uruchomione, jeśli aktualizacja nie zostanie wykonana, np. w twoim drugim przykładzie. To może być dobre lub złe w zależności od twojego zamiaru. – HABO