【问题标题】:collation in stored procedure存储过程中的排序规则
【发布时间】:2011-03-02 04:23:21
【问题描述】:

我有一个包含不同语言数据的表​​格。所有字段都是 nvarchar(max)。 我创建了一个存储过程,它修剪所有字段的值

Create Proc [dbo].[TrimValues]
as
update testdata 
set city = dbo.trim(city),
state = dbo.trim(state),
country = dbo.trim(country),
schoolname = dbo.trim(schoolname)

修剪后所有非英文文本变为?????

【问题讨论】:

    标签: sql tsql stored-procedures collation


    【解决方案1】:

    您的 Trim 用户定义函数的参数被声明为 varchar 而不是 nvarchar,或者您在该函数中使用声明为 varchar 的变量来构建结果,或者您已将结果声明为 varchar 而不是 nvarchar。我们需要查看 Trim 函数的来源才能确定。

    【讨论】:

    • 你明白了。 trim 函数返回的是 varchar 而不是 nvarchar。谢谢
    【解决方案2】:

    我猜你的dbo.trim 用户定义函数有问题。你有它的来源吗?

    【讨论】:

      【解决方案3】:

      确保你修剪函数接受 nvarchar 而不仅仅是 varchar 否则它将进行隐式转换,你能发布代码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-02
        • 1970-01-01
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 2010-11-30
        • 2023-04-04
        • 1970-01-01
        相关资源
        最近更新 更多