T-SQL:将参数传递给openquery存储过程

时间:2015-03-12 13:33:12

标签: sql-server tsql reporting-services parameter-passing openquery

我正在尝试通过SSRS将@year参数传递给查询Progress数据库的SQL Server存储过程。当存储过程在ssrs中运行时,我在@year值处收到语法错误。

任何人都可以看到我错过了一些非常明显的东西吗?

[stored procedure name]
    @year nvarchar(max)
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @SQL nvarchar(max)
    set @SQL = 'select * 
                from openquery
                     ("server name",
                        ''select 
                             "PLACE-REF", "ACCOUNT-CODE", "TRANS-YEAR" 
                          from "PLACE"."LOCATION" 
                          where ((LTRIM(RTRIM(("LOCATION"."ACCOUNT-CODE" ))) IN (''''S/RTBQ'''',''''S/VATC'''' )))
                            and ("LOCATION"."TRANS-YEAR" =  ''''' + @year + ''''') '') '

    --print @sql
    EXEC (@SQL)
END

显然这是代码的片段,但它提供了我参与参数的方式。

感谢。

0 个答案:

没有答案