varchar非unicode能否用器到nvarchar?
情:首先Varchar非unicode,我需要通器insert和update到nvarchar表,varchar所入的外文,例如:???óíúé,那我如何器才能正的容到nvarchar;
insert into tb_vmember (c_vclass,c_vname,c_vtext) values (N'???úíá?',N'102',N'???úíá?')
--是insert到varchar表//
ALTER TRIGGER [dbo].[insVToNv]
ON [dbo].[tb_vmember]
FOR INSERT
AS
BEGIN
if TRIGGER_NESTLEVEL()>1
return
insert into [DBNVarchar].[dbo].[tb_member](c_name,c_class,c_text)
select tbv.c_vname,tbv.c_vclass,tbv.c_vtext
from tb_vmember tbv,inserted i
where tbv.c_id=i.c_id
END
--是varchar型tb_vmember的器
insert外文到varchar表tb_vmember,器insert到nvarchar表tb_member,但外文不能正常示是何? Unicode SQL varchar nvarchar
[解决办法]
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (cn nvarchar(14),c nvarchar(18))
insert into [TB]
select N'???úíá?','jlsdkfjsd'
select * from [TB]
INSERT INTO TB(c)
SELECT '???úíá?' --插入到varchar 中的非unicode字符,就已经是???úíá?了。触发器处理后也无法再nvarchar显示正常
INSERT INTO TB(cn)
SELECT c
FROM dbo.TB
WHERE c = '???úíá?'
/*
cnc
???úíá?jlsdkfjsd
NULL???úíá?
???úíá?NULL*/参考
[解决办法]
一直正在使用中,且量非常大
--> 找系统闲时就能修改呀,例如深夜.
建议尽量往这方面去考虑问题喔.