使用函數的方式如何? 創建功能:
CREATE FUNCTION dbo.sf_ReplaceChars (@MyString NVARCHAR(MAX))
RETURNS NVARCHAR(50)
AS
BEGIN
DECLARE @tmpString NVARCHAR(100)
SET @tmpString = @MyString
SET @tmpString = LOWER(@tmpString)
SET @tmpString = REPLACE(@tmpString,'à', 'a')
SET @tmpString = REPLACE(@tmpString,'è', 'e')
SET @tmpString = REPLACE(@tmpString,'é', 'e')
SET @tmpString = REPLACE(@tmpString,'ì', 'i')
SET @tmpString = REPLACE(@tmpString,'ò', 'o')
SET @tmpString = REPLACE(@tmpString,'ù', 'u')
SET @tmpString = REPLACE(@tmpString,'ç', 'c')
RETURN @tmpString
END
GO
然後用它需要的時候,假設用戶輸入存儲在變量@userInput:
INSERT INTO myTable (text) VALUES select dbo.sf_ReplaceChars(@userInput)
您可以添加更多的替換對功能涵蓋您的所有需求。
問候 托馬斯
不宜應用程序應該驗證其數據進入數據庫之前更新命令編輯? – StuartLC 2012-02-09 09:32:55
準確地說,在用戶輸入所有這些值時進行驗證。在這裏你可以使用任何方法。但最可靠的是正則表達式。另一方面,數據庫只是一個存儲空間。除CRUD外,不要進行任何處理。 – Oybek 2012-02-09 09:37:56
我同意客戶端驗證,但也許這不是一個選項,它可以被「智能」用戶繞過。服務器驗證/替換隻是不能失敗。 – Thomas 2012-02-09 09:42:23