使用插入\更新上的SQL Server表触发器替换字符串中的字符

时间:2015-11-13 17:01:13

标签: sql sql-server regex

**回答

我正在尝试创建一个触发器,当用户从我们的网站插入或更新新数据时,该触发器将使用正确的撇号替换字符'(MS Word智能引用)。 / p>

可以在5000 NVarchar列的任何位置找到特殊撇号,并且可以在同一个字符串中找到多次。

对此有任何简单的替换声明吗?

REPLACE(Column,'’','''')

1 个答案:

答案 0 :(得分:0)

我认为您应该考虑在应用程序中而不是在SQL Server中执行此操作。这不是你正在寻找的答案 - 但它可能更有意义。

通常情况下,当我看到这样的问题时,我立即担心开发者会试图“击败”。 SQL注入。如果是这样,这种方法永远不会起作用 - 按照:

http://sqlmag.com/database-security/sql-injection-beyond-basics

那就是说,如果你不专注于那个,只需要摆脱“讨厌的”'字符,然后REPLACE()将起作用(可能是你最好的选择),但我仍然认为你可能更好地处理格式化问题'来自您的应用程序中的此类问题。或者换句话说,将SQL Server视为您的数据存储库 - 存储您的原始数据。然后,如果你需要让它变得漂亮'或者'调整'它适用于各种输出/显示,然后通过您的应用程序在您的用户出来的过程中执行此操作。