create procedure pptf
as
begin
declare @name varchar(8000)declare @s1 char(8000)
set @name = 'QSVOX'+ CONVERT(varchar(100), GETDATE(), 126)
exec( 'create table ' + @name + '(id int,name varchar(8000))')exec ('insert into '+@name+'(ID,CityName) select ID,CityName from AjaxCity2  where not exists(select 1 from AjaxCity where ID=AjaxCity2.ID)')end 
GO 
exec pptf服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '-' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '-' 附近有语法错误。
报错信息

解决方案 »

  1.   


    create procedure pptf
    as
    begin
    declare @name varchar(8000)
    declare @s1 varchar(8000)
    set @name = '[QSVOX'+CONVERT(varchar(100),GETDATE(),126)+']'
    print @name
    exec('create table '+ @name + '(id int,name varchar(8000))')
    exec ('insert into '+@name+'(ID,CityName) 
    select ID,CityName from AjaxCity2 
    where not exists(select 1 from AjaxCity where ID=AjaxCity2.ID)')
    end  
    GO  
    exec pptf
      

  2.   


    create procedure pptf
    as
    begin
    declare @name varchar(8000)declare @s1 char(8000)
    set @name = '[QSVOX'+ CONVERT(varchar(100), GETDATE(), 126) + ']'
    exec( 'create table ' + @name + '(id int,name varchar(8000))')exec ('insert into '+@name+'(ID,CityName) select ID,CityName from AjaxCity2 where not exists(select 1 from AjaxCity where ID=AjaxCity2.ID)')end 
    GO 
    exec pptf
      

  3.   


    --给表名加上中括号即可
    create procedure pptf
    as
    begin
    declare @name varchar(8000)
    declare @s1 char(8000)
    set @name = 'QSVOX'+CONVERT(varchar(100), GETDATE(), 126)
    --select @name
    /*QSVOX2012-05-25T10:51:11.153*/ exec( 'create table [' + @name + '] (id int,name varchar(8000))')
    exec ('insert into '+
    @name+'(ID,CityName) select ID,CityName from AjaxCity2 where not exists(select 1 from AjaxCity where ID=AjaxCity2.ID)')
    end 
    GO  
    exec pptf
      

  4.   

    加方括号也不加有什么差别?
    declare @Sql varchar(1000)
    set @Sql='Select Top (10) * From ASK'
    EXEC (@Sql)declare @Sql_a varchar(1000)
    set @Sql_a='Select Top (10) * From [ASK]'
    EXEC (@Sql_a)
    都正确啊...