sql server2014

insert into Info values ('张三'+  CONVERT(varchar(20),@j)) 为啥这样写插入的数据为这样 应该怎么该

数据库编码的问题 看看SQL语句的编码和数据库设置的编码是否一致

将name字段的属性varchar改为nvarchar,且在插入汉字时用  N'汉字'

重新执行如下脚本:

create database Student
go
ALTER DATABASE Student COLLATE Chinese_PRC_CS_AI_WS
create table Info(
Id int primary key identity(1,1),
Name nvarchar(20) not null
)

select * from Info
declare @i int=1
declare @j int=1
begin tran
begin try
while(@i<100)
begin 
insert into Info(Name) values ('张三'+  CONVERT(varchar(20),@j));
set @j=@j+1;
set @i=@i+1;
end
end try
begin catch
rollback tran
end catch
go

 

select * from yzxce
declare @i int = 1
declare @j int = 1
while (@i < 10)
begin 
insert into yzxce values('张三'+CONVERT(varchar(20),@j));
set @j = @j+1;
set @i = @i+1;
end

简单写了下