执行下面的语句:
if exists (select * from dbo.sysobjects where id = object_id(N'[vehicle]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [vehicle]
GO
CREATE TABLE [dbo].[vehicle](
[V_Id] [int] NOT NULL,
[V_Deviceid] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[V_IpAddress] [varchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL,
[V_No] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[V_Company] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[V_Type] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[V_OwnNo] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[V_TeamNo] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[V_AlarmLinkTel] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[V_DistrictCode] [varchar](4) COLLATE Chinese_PRC_CI_AS NULL,
[V_FrameNo] [varchar](32) COLLATE Chinese_PRC_CI_AS NULL,
[V_EngineNo] [varchar](32) COLLATE Chinese_PRC_CI_AS NULL,
[V_Line] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[V_VehicleType] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[V_Brand] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[V_Color] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[V_IssueDate] [datetime] NULL,
[V_ExpireDate] [datetime] NULL,
[V_InvoiceNo] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[V_PurchaseDate] [datetime] NULL,
[V_PurchaseSum] [money] NULL,
[V_Seller] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[V_EnrolDate] [datetime] NULL,
[V_AppendCardNo] [varchar](32) COLLATE Chinese_PRC_CI_AS NULL,
[V_LogOut] [int] NULL CONSTRAINT [DF_Vehicle_V_LogOut]  DEFAULT (0),
[V_LogOutCause] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[V_LogOutDate] [datetime] NULL,
[V_FrameNoPicture] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[V_Picture] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,
[V_FNPicture] [image] NULL,
[V_VehPicture] [image] NULL,
[V_PassWord] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[V_Mark] [int] NULL CONSTRAINT [DF_Vehicle_V_Mark]  DEFAULT (100),
[V_SetTime] [int] NOT NULL CONSTRAINT [DF_Vehicle_V_SetTime]  DEFAULT ((1440)),
[V_Crossborder] [int] NOT NULL CONSTRAINT [DF_Vehicle_V_Crossborder]  DEFAULT ((0)),
) ON [PRIMARY]
GO
bulk insert ICGPS.dbo.vehicle from 'G:\11月gps数据\原始数据\公交\轨迹数据表TXT\Vechile.txt'with(FIELDTERMINATOR=',',ROWTERMINATOR='\n')if(object_id('tempdb..#dyndata1') is not null)
drop table #dyndata1
GO
CREATE TABLE [dbo].[#dyndata1] (
[DeviceID] [numeric](18, 0) NULL ,
[Gpsdaytime] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Longitude] [numeric](18, 12) NULL ,
[Latitude] [numeric](18, 12) NULL ,
[Velocity] [numeric](18, 0) NULL ,
[Angle] [numeric](18, 0) NULL ,
[Alarm] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Light] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Oil] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Locate] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[TaxiState] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Temperature] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[Passengers] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[WL_StateChange] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[WL_EmptyMile] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[WL_LoadMile] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,
[status] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[gpsall]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [gpsall]
GO
CREATE TABLE [gpsall] (
[gpsid] [int] IDENTITY (1, 1) NOT NULL ,--插入记录顺序号
[did] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,--设备号
[vname] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,--车牌号
[cname] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,--公司名称
[vno] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,--自编号
[lname] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,--线路名称
[gtime] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,--时间
[glon] [numeric](12, 8) NULL ,--经度
[glat] [numeric](12, 8) NULL ,--纬度
[gvel] [numeric](12, 0) NULL ,--速度
[gang] [numeric](12, 0) NULL --角度
) ON [PRIMARY]
GOdeclare @loadfileseq as int set @loadfileseq=1
declare @loadnum as int
declare @firstrow as numeric(12,0),@rownum as numeric(12,0)
declare @sql_1 as varchar(800)
while(@loadfileseq<=9)
begin
print 'loadfile:gpstable'+convert(varchar(800),@loadfileseq)+',starttime:'+convert(varchar(80),getdate(),20) set @firstrow=1 set @rownum=100000 set @loadnum=1
while(@loadnum>0)
begin
print 'firstrow:'+convert(varchar(800),@firstrow)+',starttime:'+convert(varchar(80),getdate(),20)

set @sql_1='bulk insert JKS0911.dbo.#dyndata1 from ''I:\11月gps数据\原始数据\gpstable'+convert(varchar(8),@loadfileseq)+'.txt''
with(FIELDTERMINATOR='','',FIRSTROW='+convert(varchar(10),@firstrow)+
',LASTROW='+convert(varchar(10),(@firstrow+@rownum))+',ROWTERMINATOR=''\n'')'
exec(@sql_1) insert into gpsall (did,vname,cname,vno,lname,gtime,glon,glat,gvel,gang) 
select DeviceID,V_No,v_company,V_OwnNo,V_TeamNo,Gpsdaytime,Longitude,Latitude,Velocity,Angle from #dyndata1 inner join vehicle on
#dyndata1.DeviceID=vehicle.V_Deviceid and Locate='1' and
(
(substring(Gpsdaytime,1,10)='2009-11-01' or
(substring(Gpsdaytime,1,10)='2009-11-02' or
(substring(Gpsdaytime,1,10)='2009-11-03'
)

set @firstrow=@firstrow+@rownum+1
select @loadnum=count(*) from #dyndata1
delete from #dyndata1
end
set @loadfileseq=@loadfileseq+1
end报错
服务器: 消息 156,级别 15,状态 1,行 29
在关键字 'set' 附近有语法错误。不知是怎么回事

解决方案 »

  1.   


    declare @loadfileseq int 
    set @loadfileseq=1 
      

  2.   

    你点一下错误,提示在哪行,可能是你的BEGIN END语句块
      

  3.   


    谢谢,不是这个问题,改了仍然存在。“set @firstrow=@firstrow+@rownum+1”??
      

  4.   

    提示是
    “set @firstrow=@firstrow+@rownum+1”
    这一行,没搞明白
      

  5.   


    (substring(Gpsdaytime,1,10)='2009-11-01') or 
    (substring(Gpsdaytime,1,10)='2009-11-02') or 
    (substring(Gpsdaytime,1,10)='2009-11-03')