strcpy(strSQL, "SELECT * FORM " + @salaryName);EXEC SQL EXECUTE IMMEDIATE :strSQL;

解决方案 »

  1.   

    declare @i int,@str nvarchar(10)
    set @i=1
    while @i<=10 
      begin
        set @str='表'+cast(@i as nvarchar(2))
        exec aa @str,getdate(),@i
        set @i= @i+1
      end
      

  2.   

    ?????
    CREATE PROCEDURE aa
    @salaryname varchar(100),           --工资表名称
    @payday smalldatetime,                --编制日期
    @orgid int                           -- 机构编号 
    as
    declare @sql varchar(8000)
    set @sql='select * from '+@salaryname+' where payday='''+cast(@payday as varchar(20))+''' and orgid='+(cast(@orgid as varchar(10))exec (@sql)RETURN 0go
      

  3.   

    ??????2CREATE PROCEDURE aa
    @salaryname varchar(100),           --工资表名称
    @payday smalldatetime,                --编制日期
    @orgid int                           -- 机构编号 
    as
    declare @sql varchar(8000)
    set @sql='select * from '+replace(@salaryname,',',' where payday='''+cast(@payday as varchar(20))+''' and orgid='+(cast(@orgid as varchar(10)) +' select * from ')
    set @sql=left(@sql,len(@sql)-14)exec (@sql)RETURN 0go
      

  4.   

    更正:
    1
    CREATE PROCEDURE aa
    @salaryname varchar(100),           --工资表名称
    @payday smalldatetime,                --编制日期
    @orgid int                           -- 机构编号 
    as
    declare @sql varchar(8000)
    set @sql='select * from '+@salaryname+' where payday='''+cast(@payday as varchar(20))+''' and orgid='+cast(@orgid as varchar(10))exec (@sql)RETURN 0go
    2
    CREATE PROCEDURE aa
    @salaryname varchar(100),           --工资表名称
    @payday smalldatetime,                --编制日期
    @orgid int                           -- 机构编号 
    as
    declare @sql varchar(8000)
    set @sql='select * from '+replace(@salaryname,',',' where payday='''+cast(@payday as varchar(20))+''' and orgid='+cast(@orgid as varchar(10)) +' select * from ')
    set @sql=left(@sql,len(@sql)-15)exec (@sql)RETURN 0go
      

  5.   

    declare @i int
    declare @tablename varchar(4)
    set @i = 1
    while @i <= 10
    begin
      set @tablename = '表'+cast(@i as char(2))
      exec aa, @tablename, ......
      set @i = @i + 1
    end
      

  6.   

    declare @i int,@tbname varchar(20)
    set @i=1
    while @i<11
    begin
      select @tbname='表'+cast(@i as varchar),@i=@i+1
      exec aa @tbname,getdate(),1
    end