Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

T-SQL изрязване на   (и други небуквени и цифрови знаци)

Това ще премахне всички небуквени и цифрови знаци

CREATE FUNCTION [dbo].[fnRemoveBadCharacter]
(
    @BadString nvarchar(20)
)
RETURNS nvarchar(20)
AS
BEGIN

            DECLARE @nPos INTEGER
            SELECT @nPos = PATINDEX('%[^a-zA-Z0-9_]%', @BadString)

            WHILE @nPos > 0
            BEGIN
                        SELECT @BadString = STUFF(@BadString, @nPos, 1, '')
                        SELECT @nPos = PATINDEX('%[^a-zA-Z0-9_]%', @BadString)
            END

            RETURN @BadString
END

Използвайте функцията като:

UPDATE TableToUpdate
SET ColumnToUpdate = dbo.fnRemoveBadCharacter(ColumnToUpdate)
WHERE whatever


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Този код предотвратява ли инжектирането на SQL?

  2. Изберете колони от набора от резултати на съхранената процедура

  3. Как се стига до ограничения от 8060 байта на ред и 8000 на (varchar, nvarchar) стойност?

  4. Добавете водещи и последващи нули в SQL Server

  5. 7 начина за връщане на всички таблици с чужди ключове в SQL Server