我的数据库表如下所示:
ID | Name | Name_Plain
1 | Łódź |
我想实现的是,每当有insert或update到这个表中时,我希望sql自动将“name”转换成不带特殊字符的文本,并将其写入“name\u plan”。所以上面例子中的结果应该是“lodz”。
我创建了一个触发器,现在正在尝试编写一个用户定义的函数,该函数执行从输入文本到输出文本的转换。
ALTER FUNCTION [dbo].[usunogonki] (@t nvarchar(50)) RETURNS nvarchar(50)
AS
BEGIN
return @t
END;
问题是。。上面的函数几乎返回我想要的文本!它返回“l”ódz”。我知道这和编码有关,因为ł 变成了l和ó 保持不变。我想从这个函数中得到的是做我想做的事情,所以现在它应该返回我不变的文本。
我尝试了一些整理程序的技巧,比如
return (@t COLLATE sql_polish_cp1250_ci_as)
但没有成功。我错过了什么?
1条答案
按热度按时间mi7gmzs61#
试试这个:
创建一个可以具体化的计算列。或者基本上,坚持你的例子: