SELECT * into tmptable FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=d:\book1.xls;User ID=;Password=;Extended properties=Excel 5.0')...[Sheet1$]
这句话直接执行就没有问题,可是换成下面这种方式就报错:
declare @filename as varchar(100)
select @filename='d:\book1.xls'
SELECT * into tmptable FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source='+@filename+';User ID=;Password=;Extended properties=Excel 5.0')...[Sheet1$]
提示在+附近有语法错误///////////////////////////////
怎么解决呀?
这句话直接执行就没有问题,可是换成下面这种方式就报错:
declare @filename as varchar(100)
select @filename='d:\book1.xls'
SELECT * into tmptable FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source='+@filename+';User ID=;Password=;Extended properties=Excel 5.0')...[Sheet1$]
提示在+附近有语法错误///////////////////////////////
怎么解决呀?
select @filename='d:\book1.xls'
exec('SELECT * into tmptable FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='''+@filename+''';User ID=;Password=;Extended properties=Excel 5.0'')...[Sheet1$]')
可是第一行是declare @filename as varchar(100)呀,没有d:呀?
select @filename='d:\book1.xls'
exec('SELECT * into tmptable FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@filename+';User ID=;Password=;Extended properties=Excel 5.0'')...[Sheet1$]')--这样试试,应该是多了''
select @filename='d:\book1.xls'
exec('SELECT * into tmptable FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@filename+';User ID=;Password=;Extended properties=Excel 5.0'')...[Sheet1$]')
declare @filename as varchar(100)
select @filename='d:\book1.xls'
set @SQLStr='SELECT * into tmptable FROM OpenDataSource('''
set @SQLStr=@SQLStr+'Microsoft.Jet.OLEDB.4.0'''
set @SQLStr=@SQLStr+',''Data Source='
set @SQLStr=@SQLStr+@filename+';User ID=;Password=;Extended properties=Excel 5.0'')'
set @SQLStr=@SQLStr+'...[Sheet1$]'
print @SQLStr
exec (@SQLStr)
能把你的qq或者msn告诉我吗,要多多向你请教
msn:[email protected]
就是我从一个表里把数据导入到别的表里:
insert into t(aaa,bbb,ccc,ddd) select aaa,bbb,ccc from t1
在t1表中没有ddd这个字段,我能不能这样写?
insert into t(aaa,bbb,ccc,ddd) select aaa,bbb,ccc from t1,‘ddd’
insert into t(aaa,bbb,ccc,ddd) select aaa,bbb,ccc,'ddd' from t1
能够告诉我你的msn或者qq?
平时多交流
@id varchar(20), --记录编号
@t varchar(2), --记录类型
@jie varchar(2), --记录属于第几届比赛
@f varchar(20) output --返回结果---新的记录编号
as
declare @tmpid varchar(20)
set @tmpid=substring(@id,3,10) +1
print @tmpid
if len(@tmpid)=1 set @tmpid=@jie + @t + '000000000' + @tmpid
if len(@tmpid)=2 set @tmpid=@jie + @t + '00000000' + @tmpid
if len(@tmpid)=3 set @tmpid=@jie + @t + '0000000' + @tmpid
if len(@tmpid)=4 set @tmpid=@jie + @t + '000000' + @tmpid
if len(@tmpid)=5 set @tmpid=@jie + @t + '00000' + @tmpid
if len(@tmpid)=6 set @tmpid=@jie + @t + '0000' + @tmpid
if len(@tmpid)=7 set @tmpid=@jie + @t + '000' + @tmpid
if len(@tmpid)=8 set @tmpid=@jie + @t + '00' + @tmpid
if len(@tmpid)=9 set @tmpid=@jie + @t + '0' + @tmpid
print @tmpid
select @f=@tmpid
return @f
GO这个存储过程我调用的时候,
declare @a
p_newid '1T0000000006','T','2',@a
提示 '1T0000000006' 附近有语法错误。
还有就是返回值怎么返回呀?
问的问题较多,麻烦你了,这是最后一个了,嘿嘿
declare @tmpid varchar(20)
set @tmpid=substring(@id,3,10) +1
print @tmpid
if len(@tmpid)=1 set @tmpid=@jie + @t + '000000000' + @tmpid
if len(@tmpid)=2 set @tmpid=@jie + @t + '00000000' + @tmpid
if len(@tmpid)=3 set @tmpid=@jie + @t + '0000000' + @tmpid
if len(@tmpid)=4 set @tmpid=@jie + @t + '000000' + @tmpid
if len(@tmpid)=5 set @tmpid=@jie + @t + '00000' + @tmpid
if len(@tmpid)=6 set @tmpid=@jie + @t + '0000' + @tmpid
if len(@tmpid)=7 set @tmpid=@jie + @t + '000' + @tmpid
if len(@tmpid)=8 set @tmpid=@jie + @t + '00' + @tmpid
if len(@tmpid)=9 set @tmpid=@jie + @t + '0' + @tmpid
print @tmpid
太过罗嗦
declare @tmpid varchar(20)
set @tmpid=substring(@id,3,10) +1
select @tmpid=@jie + @t + right('0000000000' + @tmpid,10)
2.
--try
declare @a varchar(20)
p_newid '1T0000000006','T','2',@a out
select @a
第二个问题还是不行
存储过程:
CREATE procedure [dbo].[p_newid]
@id varchar(20), --记录编号
@t varchar(2), --记录类型
@jie varchar(2), --记录属于第几届比赛
@f varchar(20) output --返回结果---新的记录编号
as
declare @tmpid varchar(20)
set @tmpid=substring(@id,3,10) +1
select @tmpid=@jie + @t + right('0000000000'+@tmpid,10)
select @f=@tmpid
GO然后按照你的调用:
declare @a varchar(20)
p_newid '1T0000000006','T','2',@a out
select @a
结果提示错误:
服务器: 消息 170,级别 15,状态 1,行 18
第 18 行: 'p_newid' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,行 19
必须声明变量 '@a'。
@id varchar(20), --记录编号
@t varchar(2), --记录类型
@jie varchar(2), --记录属于第几届比赛
@f varchar(20) output --返回结果---新的记录编号
as
declare @tmpid varchar(20)
set @tmpid=substring(@id,3,10) +1
select @tmpid=@jie + @t + right('0000000000'+@tmpid,10)
select @f=@tmpid
GOdeclare @a varchar(20)
exec p_newid '1T0000000006','T','2',@a output
select @a