>cioè nel senso che nella colonna comune del database c'è un nome
>" L'AQUILA " utilizzando il codice sopra descritto in quale punto
>devo fare il replace?
Non devi farlo.
Inoltre non ho capito per quale motivo hai specificato che il carattere '%' debba essere UNICODE dato che i data type del parametro @Comune e della colonna Comune sono varchar.
Osserva il seguente esempio:
USE tempdb;
CREATE TABLE dbo.Comuni(
codcomune int NOT NULL PRIMARY KEY,
comune varchar(25) NOT NULL,
prov char(2) NOT NULL
);
INSERT dbo.Comuni VALUES(1, 'Milano', 'MI');
INSERT dbo.Comuni VALUES(2, 'Roma', 'RM');
INSERT dbo.Comuni VALUES(3, 'Cava de'' Tirreni', 'SA');
GO
CREATE PROCEDURE dbo.up_GetComune(
@Comune varchar(25) = NULL
)
AS
IF @Comune IS NULL OR LEN(@Comune) = 0
SELECT codcomune,comune,prov
FROM dbo.Comuni
WHERE 1 = 0
ELSE
SELECT codcomune,comune,prov
FROM dbo.Comuni
WHERE comune LIKE @Comune + '%'
GO
EXEC dbo.up_GetComune;
/* Output:
codcomune comune prov
----------- ------------------------- ----
(0 row(s) affected)
*/
EXEC dbo.up_GetComune 'Milano';
/* Output:
codcomune comune prov
----------- ------------------------- ----
1 Milano MI
(1 row(s) affected)
*/
EXEC dbo.up_GetComune 'Cava de'' Tirreni';
/* Output:
codcomune comune prov
----------- ------------------------- ----
3 Cava de' Tirreni SA
(1 row(s) affected)
*/
EXEC dbo.up_GetComune 'Cava de';
/* Output:
codcomune comune prov
----------- ------------------------- ----
3 Cava de' Tirreni SA
(1 row(s) affected)
*/
EXEC dbo.up_GetComune 'Cava de''';
/* Output:
codcomune comune prov
----------- ------------------------- ----
3 Cava de' Tirreni SA
(1 row(s) affected)
*/
DROP PROCEDURE dbo.up_GetComune;
DROP TABLE dbo.Comuni;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org