34 lines
1.4 KiB
Transact-SQL
34 lines
1.4 KiB
Transact-SQL
CREATE FUNCTION [C6Mart].[CARATTERINONVALIDI]
|
|
(
|
|
@text as varchar(max)
|
|
)
|
|
RETURNS VARCHAR(1)
|
|
AS
|
|
BEGIN
|
|
DECLARE @num AS INT
|
|
SET @num = 1
|
|
WHILE @num < LEN(@text)
|
|
BEGIN
|
|
IF ASCII(SUBSTRING(@text,@num,1)) < 32 RETURN 'S'-- ' '
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 33 RETURN 'S'-- '!'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 34 RETURN 'S'-- '"'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 35 RETURN 'S'-- '#'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 36 RETURN 'S'-- '$'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 37 RETURN 'S'-- '%'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 38 RETURN 'S'-- '&'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 42 RETURN 'S'-- '*'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 58 RETURN 'S'-- ':'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 59 RETURN 'S'-- ';'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 60 RETURN 'S'-- '<'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 61 RETURN 'S'-- '='
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 62 RETURN 'S'-- '>'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 91 RETURN 'S'-- '['
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 92 RETURN 'S'-- '\'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 93 RETURN 'S'-- ']'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 94 RETURN 'S'-- '^'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) = 96 RETURN 'S'-- '`'
|
|
IF ASCII(SUBSTRING(@text,@num,1)) > 122 RETURN 'S'-- 'z'
|
|
SET @num = @num + 1
|
|
END
|
|
RETURN 'N'
|
|
END |