En realidad, puedes lanzar NULL
a int, simplemente no puedes convertir una cadena vacía a int. Suponiendo que desea NULL en la nueva columna si data1
contiene una cadena vacía o NULL, puede hacer algo como esto:
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
Si desea alguna otra lógica, puede usar, por ejemplo (la cadena vacía se convierte en -1):
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;