存储过程中的动态查询语句
--reading data
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = 'Proc_ReadingData'
AND type = 'P')
DROP PROCEDURE Proc_ReadingData
GO
CREATE PROCEDURE Proc_ReadingData
@ReadYearMonth Char(6),
@group smallint,
@team tinyint,
@serial tinyint
AS
begin
declare @sSql char(1024)
declare @tb table(
id int null,
usernum char(20) null,
usergroup smallint null,
userteam smallint null,
serial tinyint null,
readtime datetime null,
orireading int null,
reading int null,
curreading int null)
set @sSql='insert into ''@tb'' (id, usernum, usergroup, userteam, serial, readtime, orireading)'
set @sSql=@sSql + 'select r.id, a.usernum, a.usergroup, a.userteam, a.serial, r.readtime, r.orireading, r.reading'
set @sSql=@sSql + 'from ammeter a'
set @sSql=@sSql + 'join reading r'
set @sSql=@sSql + 'on a.usergroup = r.usergroup'
set @sSql=@sSql + 'and a.userteam = r.userteam'
set @sSql=@sSql + 'and a.serial = r.serial'
--if @ReadYearMonth <> '' then set @sSql=@sSql+' and '
--if @group <> 0 then ……
--这里要对条件判断,现在被我注释掉了??
set @sSql=@sSql + 'order by a.usergroup, a.userteam, a.serial, r.readtime'
Exec (@sSql)
select * from @tb
end
go
提示我:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '@tb' 附近有语法错误。
(所影响的行数为 0 行)