Exécuter la fonction définie par l'utilisateur SQL qui retourne booléen, dans la clause where

Espère que ce ne pas sembler trop simple. J'ai regardé cela, mais je ne suis pas si bon en SQL, fonctions définies par l'utilisateur et de leur utilisation, de sorte que je ne suis pas sûr de ce qu'il se passe. Qui aime un peu de points pour me dire pourquoi j'obtiens le message d'erreur:

Une expression de la non-booléenne de type spécifié dans un contexte où une
la condition est prévu, près de ')'.

Pour cela:

UPDATE LMI_Contact
SET Phone = NULL
WHERE dbo.LMI_IsSingleCharacterRepeated(Phone, '0')

où la fonction peut être créé à l'aide de:

-- ***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

Cette fonction est pour vérifier si une chaîne est un caractère unique, répétée. J'espère que quelqu'un le trouve utile!

source d'informationauteur Chris Halcrow