首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL批量导入数据,错哪了?帮忙看上

2012-08-16 
SQL批量导入数据,哪里错了?帮忙看下SQL codeDECLARE @length intDECLARE @name intSET @length 2set @na

SQL批量导入数据,哪里错了?帮忙看下

SQL code
DECLARE @length intDECLARE @name intSET @length = 2set @name=08while @name<=31BEGIN    declare @strSql varchar(500)    declare @_str varchar(10)    set @_str=REPLICATE('0',@length-DATALENGTH(CONVERT(VARCHAR,@name)))+CONVERT(VARCHAR,@name)    set @strSql= 'insert into S201001'+@_str+'select * from DATA2010.dbo.S201001' +@_str    set @name = @name+1    execute(@strSql)End


消息 102,级别 15,状态 1,第 1 行
'*' 附近有语法错误。

[解决办法]
SQL code
DECLARE @length intDECLARE @name intSET @length = 2set @name=08while @name<=31BEGIN    declare @strSql varchar(500)    declare @_str varchar(10)    set @_str=REPLICATE('0',@length-DATALENGTH(CONVERT(VARCHAR,@name)))+CONVERT(VARCHAR,@name)    set @strSql= 'insert into S201001'+@_str+' /*这里少空格*/select * from DATA2010.dbo.S201001' +@_str    set @name = @name+1    execute(@strSql)End
[解决办法]
select 和表格名字连在一起了,中间要添加一个空格。
[解决办法]
探讨
引用:
SQL code


DECLARE @length int
DECLARE @name int
SET @length = 2
set @name=08
while @name<=31
BEGIN
declare @strSql varchar(500)
declare @_str varchar(10)
set @_str=REPLICATE('……

[解决办法]
探讨

引用:
SQL code


DECLARE @length int
DECLARE @name int
SET @length = 2
set @name=08
while @name<=31
BEGIN
declare @strSql varchar(500)
declare @_str varchar(10)
set @_str=REPLICATE……

[解决办法]
DBCC SHRINKFILE (2, 0)

第一个参数是文件的标识 (ID) 号。若要获得文件 ID,请使用 FILE_IDEX 系统函数,或查询当前数据库中的 sys.database_files 目录视图。

第二个是收缩后的大小,这个可以随意指定
[解决办法]
可以把SQL语句print出来,然后执行以下,问题就很明显了!
SQL code
print(@strSql) 

热点排行