Spero che ciò non sembri troppo semplice. Ho esaminato questo aspetto, ma non sono così bravo con le funzioni definite dall'utente SQL e il loro uso, quindi non sono sicuro di cosa sta succedendo. Chi immagina un paio di punti per dirmi perché sto ottenendo l'errore:Esecuzione di una funzione definita dall'utente SQL che restituisce booleano, in cui clausola
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
Per questo:
UPDATE LMI_Contact
SET Phone = NULL
WHERE dbo.LMI_IsSingleCharacterRepeated(Phone, '0')
in cui la funzione può essere creato utilizzando:
-- ***this will also find NULL and empty string values***
CREATE FUNCTION LMI_IsSingleCharacterRepeated (@string varchar(max), @char char(1))
RETURNS bit
AS
BEGIN
DECLARE @index int
DECLARE @len int
DECLARE @currentChar char(1)
SET @index = 1
SET @len= LEN(@string)
WHILE @index <= @len
BEGIN
SET @currentChar = SUBSTRING(@string, @index, 1)
IF @currentChar = @char
SET @index= @index+ 1
ELSE
RETURN 0
END
RETURN 1
END;
GO
Questa funzione è per verificare se una stringa è un singolo carattere specificato, ripetuto. Spero che qualcuno lo trovi utile!
cautela - la mia funzione sarà anche trovare campi con valori nulli o una stringa vuota, in modo davvero bisogno di un po 'di lavoro –