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

weiweiliude2 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 里面的值是汉字,实际调试中发现在它后面的字符都变成汉字字符了。如图
...全文
170 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
weiweiliude2 2015-08-12
怎么修改才能够传递中文参数呢
回复
Tiger_Zhao 2015-08-12
所以这是界面显示的问题(就像CSDN的输入框,中文双引号在英文字母后显示成英文的双引号了)。
SQL是对的。
回复
weiweiliude2 2015-08-12
传递英文的就没事。
回复
weiweiliude2 2015-08-12
后面的%和'是我从前面复制过去的,
回复
weiweiliude2 2015-08-12
用4楼的方法显示的也是一致的
回复
Tiger_Zhao 2015-08-12
这是显示语言的问题吧。
你可以用下面的语句确认一下两个%是否一致。
SELECT UNICODE(SUBSTRING(@strWhere1,26,1)),
UNICODE(SUBSTRING(@strWhere1,23,1))
回复
weiweiliude2 2015-08-12
你看万科前后的分号和百分号,后面的变成汉字类型的了
回复
weiweiliude2 2015-08-12
经常用SQL的大神来帮帮忙啊
回复
薛定谔的DBA 2015-08-12
图有什么不对吗?正常啊。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-08-12 02:38
社区公告
暂无公告