假设要向数据库中插入一个韩文的字符串“에서 유니 코드 문자열을 저장 프로 시저”
如果是直接写的SQL,我们可以写为“N'에서 유니 코드 문자열을 저장 프로 시저'”,即可正确插入到数据库。但如果是通过存储过程中插入,即使向存储过程传递参数时的值写为“N'에서 유니 코드 문자열을 저장 프로 시저'”,也不能向数据库中正确插入。请教一下,如下的SQLinsert into test(varcharCol)
values(@RecParam)变量@RecParam需要加什么,才能保证unicode字符串能正确插入到数据库?

解决方案 »

  1.   

    insert into test(varcharCol)
    values(cast(@RecParam as nvarchar(4000))) 
      

  2.   

    唉,还有这么理解的。我这么写吧:declare @RecParam varchar(2000)
    select @RecParam=N'에서 유니 코드 문자열을 저장 프로 시저'insert into test(varcharCol) 
    values(@RecParam) 
      

  3.   

    .net 
    SqlParameter
    SqlDbType.NvarChar/SqlDbType.Ncharsql server
    N'에서 유니 코드 문자열을 저장 프로 시저'database table column data type nvarchar/nchar
      

  4.   

    declare @RecParam nvarchar(2000) 
      

  5.   

    呵呵。谢谢"vivian_lanlan",按你的提醒看了一下,存储过程的参数还真是varchar的....
      

  6.   

    insert into test(varcharCol) 
    SELECT CONVERT(NVARCHAR(4000),@RecParam)这段类型是NVARCHAR的吧