SQL 存储过程中 字符变量含有汉字问题

伯恩bourne 2015-08-12 02:38:45
PROCEDURE [dbo].[test]
@AlarmName nvarchar(30)

AS
BEGIN
declare @strWhere1 nvarchar(100)
set @strWhere1='';
if(@AlarmName is not null)
set @strWhere1=' and AlarmName like ''%'+@AlarmName+'%''';
这个@AlarmName 里面的值是汉字,实际调试中发现在它后面的字符都变成汉字字符了。如图
...全文
274 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复
怎么修改才能够传递中文参数呢
Tiger_Zhao 2015-08-12
  • 打赏
  • 举报
回复
所以这是界面显示的问题(就像CSDN的输入框,中文双引号在英文字母后显示成英文的双引号了)。
SQL是对的。
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复
传递英文的就没事。
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复
后面的%和'是我从前面复制过去的,
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复
用4楼的方法显示的也是一致的
Tiger_Zhao 2015-08-12
  • 打赏
  • 举报
回复
这是显示语言的问题吧。
你可以用下面的语句确认一下两个%是否一致。
SELECT UNICODE(SUBSTRING(@strWhere1,26,1)),
UNICODE(SUBSTRING(@strWhere1,23,1))
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复 1
你看万科前后的分号和百分号,后面的变成汉字类型的了
伯恩bourne 2015-08-12
  • 打赏
  • 举报
回复
经常用SQL的大神来帮帮忙啊
薛定谔的DBA 2015-08-12
  • 打赏
  • 举报
回复
图有什么不对吗?正常啊。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧