日期:2014-05-18  浏览次数:20594 次

关于支持多语言录入的疑惑!
现在我的数据库表内要求存储多语言,就是可以录入中文,韩文,俄文,德文。。。
我的表字段设置nvarchar数据类型,可以支持存入多语言。
在写sql   语句是使用如下脚本:
insert   into   Test(username)   values   (N '张三 ')  在字符串前面加关键字N即可
但是我使用如下方式就不可以
declare   @username   nvarchar(10)
insert   into   Test(username)   values(N@username)  
出现SQL错误 请问为什么呢

------解决方案--------------------
declare @username nvarchar(10)
--insert into Test(username) values(N@username)
insert into Test(username) values(@username)

------解决方案--------------------
现在我的数据库表内要求存储多语言,就是可以录入中文,韩文,俄文,德文。。。
我的表字段设置nvarchar数据类型,可以支持存入多语言。
在写sql 语句是使用如下脚本:
insert into Test(username) values (N '张三 ')  在字符串前面加关键字N即可
但是我使用如下方式就不可以
declare @username nvarchar(10)
insert into Test(username) values(N@username)
出现SQL错误 请问为什么呢
--插入
insert into Test(username) values(@username)
--查询
select * from test where username = N '张三 '
------解决方案--------------------
不用加N,系统会进行隐式转换。
------解决方案--------------------
declare @username nvarchar(10) ---请看你定义的类型
---插入
insert into Test(username) values(@username)
/*OR*/ insert into Test(username) select @username
------解决方案--------------------
Declare @Test Table(id int identity(1,1),username nvarchar(10))
Insert @Test Select N '李四 '
-----------------------------
declare @username nvarchar(10) ---请看你定义的类型
---插入
Set @username=N '张三 '
insert into @Test(username) values(@username)
/*OR*/ insert into @Test(username) select @username
-----------------------------
---查询结果
select * from @Test
select * from @Test Where username=N '张三 '

---结果
/*
id username
----------- ----------
1 李四
2 张三
3 张三

(所影响的行数为 3 行)

id username
----------- ----------
2 张三
3 张三

(所影响的行数为 2 行)
*/