CREATE PROCEDURE Pro_SelectTable
@TblN VarChar(8000),
@SelectWhere VarChar(8000)
AS
Declare @SqlStr VarChar(8000)
Declare @Pointpre int
Declare @Pointcur int
Declare @Tbcur varchar(100)
SET @Pointpre=1
SET @Pointcur=1
SET @Tbcur= ' '
SET @SqlStr= ' '
IF @TblN <> ' '
BEGIN
SET @Pointcur=charindex( ', ',@TblN,@Pointpre)
IF @Pointcur=0
SET @[email protected]+Char(9)+ 'Select * from '+char(9)[email protected] /*就一个查询表的情况*/
ELSE
BEGIN
WHILE (@Pointcur <> 0)
BEGIN
SET @Pointcur=charindex( ', ',@TblN,@Pointpre)
IF @Pointcur <> 0
SET @Tbcur=substring(@TblN,@Pointpre,@[email protected]) /*得到非最后一个查询表的名字*/
ELSE
SET @Tbcur=substring(@TblN,@Pointpre,LEN(@TblN)[email protected]+1) /*得到最后一个查询表的名字*/
SET @[email protected]+1
IF @SqlStr <> ' '
SET @[email protected]+Char(9)+ UNION ALL +Char(9)+ 'Select * from '+char(9)[email protected]
ELSE
SET @[email protected]+Char(9)+ 'Select * from '+char(9)[email protected]
CONTINUE
END
END
END
/*IF @SelectWhere <> ' '
SET @[email protected]+Char(9)+ 'Where '+Char(9)[email protected]
*/
exec(@SqlStr)
==============
服务器: 消息 156,级别 15,状态 1,过程 Pro_SelectTable,行 35
在关键字 'UNION ' 附近有语法错误。
请各位大虾帮忙,不胜感激!
------解决方案--------------------
CREATE PROCEDURE Pro_SelectTable
@TblN VarChar(8000),
@SelectWhere VarChar(8000)
AS
Declare @SqlStr VarChar(8000)
Declare @Pointpre int
Declare @Pointcur int
Declare @Tbcur varchar(100)
SET @Pointpre=1
SET @Pointcur=1
SET @Tbcur= ' '
SET @SqlStr= ' '
IF @TblN <> ' '
BEGIN
SET @Pointcur=charindex( ', ',@TblN,@Pointpre)
IF @Pointcur=0
SET @[email protected]+Char(9)+ 'Select * from '+char(9)[email protected] /*就一个查询表的情况*/
ELSE
BEGIN
WHILE (@Pointcur <> 0)
BEGIN
SET @Pointcur=charindex( ', ',@TblN,@Pointpre)
IF @Pointcur <> 0
SET @Tbcur=substring(@TblN,@Pointpre,@[email protected]) /*得到非最后一个查询表的名字*/
ELSE
SET @Tbcur=substring(@TblN,@Pointpre,LEN(@TblN)[email protected]+1) /*得到最后一个查询表的名字*/