Una select su un campo varchar con apici?

mercoledì 06 maggio 2009 - 11.59

bluland Profilo | Guru

salve,

ho una SP con la seguente condizione

IF(SELECT COUNT(*) as N FROM table
WHERE [DESCRIPTION]= @description) = 0
BEGIN
--
--
END

il campo DESCRIPTION e la variabile @description assumono valori tipo:
'it doesn't exist into table Machines ecc,'
quindi caratteri con gli apici il che non mi fa risultare mai vero l'if.

Come potrei risolvere il problema?

Saluti

--------------------
Vincenzo PESANTE
Software Engineer

lbenaglia Profilo | Guru

>ho una SP con la seguente condizione
>
>IF(SELECT COUNT(*) as N FROM table
> WHERE [DESCRIPTION]= @description) = 0
>BEGIN
>--
>--
>END

Ciao Vincenzo,

Come prima cosa ti suggerisco di modificare quel comando con uno ENORMEMENTE più efficiente:

IF NOT EXISTS(SELECT * FROM table WHERE Description = @description) BEGIN ... END

In questo modo eviti una inutile aggregazione dato che non ti interessa minimamente conoscere il numero esatto delle righe che soddisfano la clausola WHERE (restituita dalla funzione di aggregazione COUNT).

>il campo DESCRIPTION e la variabile @description assumono valori
>tipo:
>'it doesn't exist into table Machines ecc,'
>quindi caratteri con gli apici il che non mi fa risultare mai
>vero l'if.
Che significa questa affermazione?
Il confronto lo esegui tra una variabile (@description) ed una colonna, quindi se i valori corrispondono la condizione sarà verificata (ovviamente a parità di apici).

>Come potrei risolvere il problema?
Sarebbe interessante capire quale sia il problema

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5