注册 登录
编程论坛 SQL Server论坛

[求助]比较困难,但解决后绝对提高

lhj2005 发布于 2007-10-15 18:33, 849 次点击

如果我要插入一条数据用变量形式(数据中有int类型和char类型)

我试了下
declare @sql varchar(100)
declare @i int
select @i=1
set @sql='insert to person_info (ID,Name,Birthday,Adress)
values('+@i+',''buzhidao'''+
cast(@i as varchar)+',1985-2-7,''shanghai'')'
显示@sql变量类型不对,因为数据中有int型


set @sql='insert to person_info (ID,Name,Birthday,Adress)
values('+cast(@i as varchar)+',''buzhidao'''+
cast(@i as varchar)+',1985-2-7,''shanghai'')'
显示与数据库中的表类型不对

请助高手


(附加字段类型:ID int,Name varchar,Birthday datetime,Adress varchar)





7 回复
#2
purana2007-10-15 18:45
不知道什么东西.
'buzhidao'+1
不知道是什么东西.
datetime类型值没有加单引号.
#3
purana2007-10-15 18:45
总的来说.
不知道什么东西.
#4
西风独自凉2007-10-15 19:27
insert into person_info (ID,Name,Birthday,Adress)
values(@i,'buzhidao'+convert(varchar(10),@i),'1985-2-7','shanghai')
#5
lhj20052007-10-16 17:37
我要实现的效果是能插入数据库中表数据啊
buzhidao后面加了个@i变量,我是为了后面,循环用的,有这样的效果(buzhidao1,buzhidao2...)

问题是,现在一条也插不进去
我就是想把插入表数据的语句 赋值给一个变量
然后通过执行变量,插入数据(数据中包含char和int类型)

各位高手能看懂了吗?
#6
purana2007-10-16 17:58

create table #a(
id int,
name varchar(50),
birthday datetime
)
declare @i int
declare @sql varchar(4000)
set @i=1
while @i<=100
begin
set @sql='insert #a(id,name,birthday) values('+convert(varchar,@i)+',''You_Name'+convert(varchar,@i)+''',''2007-10-16'')'
print @sql
exec (@sql)
set @i=@i+1
end

select * from #a
drop table #a

#7
lhj20052007-10-17 11:48

create table #a(...
和create table a(...
有什么区别吗?
请教!!!高手

#8
XieLi2007-10-17 11:55
create table #a 是临时表,他不会存在数据库.
1