In realtà, puoi trasmettere NULL
su int, non puoi semplicemente eseguire il cast di una stringa vuota su int. Supponendo che tu voglia NULL nella nuova colonna se data1
contiene una stringa vuota o NULL, puoi fare qualcosa del genere:
UPDATE table SET data2 = cast(nullif(data1, '') AS int);
Se vuoi un'altra logica, puoi usare ad esempio (la stringa vuota viene convertita in -1):
UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;