【问题标题】:How to pass Server Name dynamically in SQL Server如何在 SQL Server 中动态传递服务器名称
【发布时间】:2017-10-01 13:18:34
【问题描述】:
SET NOCOUNT ON;

DECLARE @sql NVARCHAR(MAX), 
        @servername NVARCHAR(255)

SET @servername = '[s-printstream]'

--Drop Table #Actual
CREATE TABLE #Actual 
(
    jobnumber INT,
    firstNameCounts VARCHAR(25),
    lastNameCounts VARCHAR(25),
    address1Counts VARCHAR(25),
    address2Counts VARCHAR(25),
    cityCounts VARCHAR(25),
    stateCounts VARCHAR(25),
    zipCounts VARCHAR(25),
    inHomeDateCounts VARCHAR(25)
)

SET @sql = 'INSERT INTO #actual (jobnumber,firstNameCounts,lastNameCounts , address1Counts, address2Counts, cityCounts, stateCounts, zipCounts, inHomeDateCounts) '
SET @sql = @sql + ' Select s.jobnumber, count(s.firstName) AS [firstNameCounts], Count (s.lastName) AS [lastNameCounts], Count (s.Address1) As [address1Counts], Count (s.address2)-Count (address2) AS '
SET @sql = @sql + ' [address2Counts], Count (s.City) AS [cityCounts], Count (s.State) AS [stateCounts], Count (s.Zip) AS [zipCounts], Count (jb.inHomeDate) AS [inHomeDateCounts] '
SET @sql = @sql + ' From' + ' @servername ' + '.[tdis_417133]' + '.[dbo].[tblStandardFinal] s '
SET @sql = @sql + ' INNER JOIN [s-printstream].[tdSchedule2].[dbo].[tblJobTicketActions] jb '
SET @sql = @sql + ' ON jb.psFlagJobNumber = s.jobNumber '
SET @sql = @sql + ' where jobNumber = @jobNumber '
SET @sql = @sql + ' group by jobNumber '

PRINT @SQL

EXEC sp_executesql @sql
    ,N'@JobNumber Varchar(25)'
    ,@JobNumber = 417133

谁能帮我找出如何动态传递我的服务器名称以及数据库名称?当我尝试这样做时,我收到此错误:

消息 137,第 15 级,状态 2,第 1 行
必须声明标量变量“@servername”

感谢任何帮助。

谢谢

【问题讨论】:

  • 不要用单引号将变量括起来。 + ' @servername ' + 应该是 + @servername +

标签: sql tsql dynamic ssrs-2008


【解决方案1】:

或将@servername 值传递给sql 命令

EXEC sp_executesql @sql
    ,N'@JobNumber Varchar(25),@servername nvarchar(255)'
    ,@JobNumber = 417133,@servername=@servername 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2023-01-02
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多