Lanciando una semplice query di update tipo :
UPDATE tabella SET campo = 'Pippo'
ho notato che se il campo in questione ha valore NULL l'update non viene
eseguito.
Potete darmi una soluzione per ovviare all'inconveniente ?
Grazie
> Potete darmi una soluzione per ovviare all'inconveniente ?
più che altro il problema non esiste:
use tempdb
go
create table test(a varchar(10))
go
insert into test values(null)
select * from test
update test set a='pippo'
select * from test
go
drop table test
Non è che fai una cosa tipo:
where campo=null ??
Quella where risulta sempre falsa, nel caso usa:
where campo is null
marc.
Goldrake ha scritto:
Ciao Goldrake,
intendi dire che avendo una tabella contiene n righe con la colonna "campo"
valorizzata a NULL, quando tenti di aggiornare per tutte le righe tale
colonna con una nuovo valore diverso da NULL ottieni un errore?
In base a quanto affermi la cosa non può essere vera.
Guarda il seguente esempio:
USE tempdb
GO
/* Definisco la tabella dbo.Foo */
CREATE TABLE dbo.Foo(
Column1 varchar(10) NULL
)
GO
/* La popolo */
SET NOCOUNT ON
INSERT dbo.Foo VALUES(NULL)
INSERT dbo.Foo VALUES('Valore 1')
INSERT dbo.Foo VALUES(NULL)
INSERT dbo.Foo VALUES(NULL)
INSERT dbo.Foo VALUES('Valore 2')
INSERT dbo.Foo VALUES('Valore 3')
INSERT dbo.Foo VALUES(NULL)
SET NOCOUNT OFF
GO
/* Aggiorno tutte le righe valorizzando
** la colonna Column1 a 'Lorenzo'
*/
UPDATE dbo.Foo
SET Column1 = 'Lorenzo'
GO
/* Output:
(7 row(s) affected)
*/
/* Vediamo */
SELECT *
FROM dbo.Foo
GO
/* Output:
Column1
----------
Lorenzo
Lorenzo
Lorenzo
Lorenzo
Lorenzo
Lorenzo
Lorenzo
(7 row(s) affected)
*/
/* Pulizia */
DROP TABLE dbo.Foo
Prova a postare la struttura completa di constraint della tabella (CREATE
TABLE), alcune righe di prova (INSERT INTO) ed il tuo comando di UPDATE.
> Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
Ho provato ad eseguire lo script di esempio che mi hai indicato ed
effettivamente funziona.
Ho approfondito meglio il problema.
La query di update, in realtà, deve fare una concatenazione di stringa con
il valore contenuto nel campo stesso:
UPDATE tabella SET campo = 'Pippo' + campo
In questo caso non viene fatto l'aggiornamento, il campo rimane NULL.
Diversamente, se passo la stringa "secca" (vedi esempio nel mio post
iniziale) funziona.
Nel frattempo, mi sono documentanto , e credo che la soluzione al mio
problema sia aggiungere un bel ISNUL(campo,'') nella concatenazione , giusto
?
Scusa per l'imprecisione di prima
Grazie
"Marcello" <marcello...@epomops.it> ha scritto nel messaggio
news:uoD0qsay...@tk2msftngp13.phx.gbl...
> Nel frattempo, mi sono documentanto , e credo che la soluzione al mio
> problema sia aggiungere un bel ISNUL(campo,'') nella concatenazione ,
giusto
> ?
giusto.
marc.
Goldrake ha scritto:
Grazie per la risposta ma mi sono accorto che avevo spiegato male il
contesto del problema.
Scusate l'inconveniente.
"Lorenzo Benaglia" <lben...@despammed.com> ha scritto nel messaggio
news:3qi0sdF...@individual.net...