Ho una tabella foo
, che ha una colonna NOT NULL
con un predefinito chiamato message
:inserimento predefinita nella colonna non nullo se il valore è nullo
CREATE TABLE foo(
id int PRIMARY KEY,
message varchar(64) NOT NULL DEFAULT 'Hello'
)
Esiste una procedura memorizzata bar
che si innestano nei foo
:
Si può vedere, devo ramificare condizionatamente in modo che il mio inserto di utilizzare l'impostazione predefinita se i_message
è nullo. Va bene per una sola colonna, ma considera se foo
avesse molte più colonne NOT NULL DEFAULT
- la sintassi sarebbe troppo pesante.
Esiste una sintassi che posso utilizzare per specificare che un valore inserito deve tornare all'impostazione predefinita se null? Ho provato i seguenti errori di sintassi, ma comprensibilmente ottenuto:
INSERT INTO foo (id, message) VALUES (i_id, COALESCE(i_message, DEFAULT));
INSERT INTO foo (id, message) VALUES (i_id, IFNULL(i_message, DEFAULT));
Brilliant! Grazie. –
Com'è possibile nel server MSSQL? – user1844205
@ user1844205: mi batte, non uso mai MSSQL, ricerca i documenti di MSSQL o pesco la domanda qui su SO. – Wrikken