Sql server SQL Server存储过程附加参数格式

Sql server SQL Server存储过程附加参数格式,sql-server,stored-procedures,formatting,Sql Server,Stored Procedures,Formatting,我有一个存储过程。我想附加参数以从特定表中获取所有数据(例如tblJanuary2014)。但是格式(可能)不正确 ALTER PROCEDURE GetReportAsOf ( @Month varchar(15), @Year varchar(15) ) AS BEGIN SELECT * FROM tbl@Month@Year RETURN END 在执行期间,它说: 无效的对象名称'tbl@Month@年 您应该在此基础上创

我有一个存储过程。我想附加参数以从特定表中获取所有数据(例如
tblJanuary2014
)。但是格式(可能)不正确

ALTER PROCEDURE GetReportAsOf
(   
    @Month varchar(15),
    @Year varchar(15)
)
AS
    BEGIN
        SELECT * FROM tbl@Month@Year
    RETURN
    END
在执行期间,它说:

无效的对象名称'tbl@Month@年


您应该在此基础上创建动态sql

ALTER PROCEDURE GetReportAsOf
(   
    @Month varchar(15),
    @Year varchar(15)
)
AS
    BEGIN
        DECLARE @SQLQuery AS NVARCHAR(500)
        SET @SQLQuery = 'SELECT * FROM tbl' + @Month + @Year
        EXECUTE(@SQLQuery)
    RETURN
    END

您应该在此基础上创建动态sql

ALTER PROCEDURE GetReportAsOf
(   
    @Month varchar(15),
    @Year varchar(15)
)
AS
    BEGIN
        DECLARE @SQLQuery AS NVARCHAR(500)
        SET @SQLQuery = 'SELECT * FROM tbl' + @Month + @Year
        EXECUTE(@SQLQuery)
    RETURN
    END

您应该在此基础上创建动态sql

ALTER PROCEDURE GetReportAsOf
(   
    @Month varchar(15),
    @Year varchar(15)
)
AS
    BEGIN
        DECLARE @SQLQuery AS NVARCHAR(500)
        SET @SQLQuery = 'SELECT * FROM tbl' + @Month + @Year
        EXECUTE(@SQLQuery)
    RETURN
    END

您应该在此基础上创建动态sql

ALTER PROCEDURE GetReportAsOf
(   
    @Month varchar(15),
    @Year varchar(15)
)
AS
    BEGIN
        DECLARE @SQLQuery AS NVARCHAR(500)
        SET @SQLQuery = 'SELECT * FROM tbl' + @Month + @Year
        EXECUTE(@SQLQuery)
    RETURN
    END

有人可以这样执行这个SP:
EXEC GetReportAsOf@Month=”;删除表1',@Year=';删除表2'
。有人可以执行此SP,因此:
EXEC GetReportAsOf@Month=';删除表1',@Year=';删除表2'
。有人可以执行此SP,因此:
EXEC GetReportAsOf@Month=';删除表1',@Year=';删除表2'
。有人可以执行此SP,因此:
EXEC GetReportAsOf@Month=';删除表1',@Year=';删除表2'