存储过程中的字符串连接问题,有点怪。

IMBIRDMAN 2004-09-15 03:12:36
自己写了一个sp向表中插入一条记录。有一个varchar型的输入参数,一个int型的输出参数。为了避免乱码问题,想在输入参数前加N来解决,插入语句如下:
Insert Into table ( ID, Name )
Values ( @D,N''''+LTRIM(RTRIM( @Name ))+'''')
因为输入参数传进来的是字符串,所以插入数据库的字段总会多出一对‘’,可是在插入语句中不加''''又会有语法错误,这个问题有办法解决么。为了保持程序结构的一致性,不想在程序中用sql语句。
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hurrah_yule 2005-04-22
  • 打赏
  • 举报
回复
nvarchar 是可变长度 Unicode 数据的数据类型,使用 UNICODE UCS-2 字符集。

加N也是为了正确显示UNICODE字符(比方说中文\韩文字符,它们在电脑里面都是用两字节表示, 而通常的SQL是以ANSI字符集表示字符串的)
daiyike 2004-09-16
  • 打赏
  • 举报
回复
问一下:为了避免乱码问题,想在输入参数前加N来解决>>>>>>>>>>是什么意思?

nvarchar型和varchar型又有什么不同的?
IMBIRDMAN 2004-09-16
  • 打赏
  • 举报
回复
对了,改成nvarchar就可以了。
Andy__Huang 2004-09-15
  • 打赏
  • 举报
回复
//为了避免乱码问题,想在输入参数前加N来解决

把varchar型的输入参数改成nvarchar型,而且要定義nvarchar型的長度。

create proc proc_a (@name nvarchar(10),@i int out)
as
.....................
了缘 2004-09-15
  • 打赏
  • 举报
回复
Values ( @D,N''''+LTRIM(RTRIM( @Name ))+'''')
--
Values ( @D,LTRIM(RTRIM( N''+@Name+'' )))

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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