我不知道如何配置OpenQuery
函數。SQL Server中的OpenQuery
我想用OpenQuery
查詢測試項目中的數據庫。但我不知道如何配置servername參數
DECLARE @Sql varchar(max)
DECLARE @SQLExcuteSentence varchar(max)
SET @Sql = 'declare @UserID INT
select @UserID = 1
declare @TotalGroupByFields nvarchar(2000)
select @TotalGroupByFields = ''Media''
declare @CostDataFileds nvarchar(2000)
select @CostDataFileds = ''''
declare @OtherDataFields nvarchar(max)
select @OtherDataFields = ''MonitoringSpotNumber,MonitoringTotalSeconds,BaseCost,ColourLoading,PositionLoading,WeekendLoading,Discount''
declare @MasterFilterId nvarchar(max)
select @MasterFilterId =''DateRange=20060601-20121231''+char(13)+''IncludeGuests=0''
declare @RatingTargetId nvarchar(2000)
select @RatingTargetId =''''
declare @IsEnableFinancialCloseDate INT
select @IsEnableFinancialCloseDate = 0
declare @MasterDisplayFormat nvarchar(2000)
select @MasterDisplayFormat = ''5''
exec [dbo].[USP_MatrixReport] @UserID, @TotalGroupByFields, @CostDataFileds, @OtherDataFields, @MasterFilterId, @RatingTargetId, @IsEnableFinancialCloseDate, @MasterDisplayFormat, 0'
SET @SQLExcuteSentence = 'SELECT * FROM OPENQUERY(SQLConn,' + '''' + @Sql + '''' + ')'
EXEC (@SQLExcuteSentence);
SQLConn是什麼?
當您找到有關'SQLConn'的問題的答案後,您可能會遇到另一個問題。你的'@ Sql'值包含引號。通過將它簡單地連接到動態查詢字符串中在OPENQUERY中使用它可能會破壞您的查詢。所以,不要只是'... + @Sql + ...'使用'... + REPLACE(@Sql,'''',''''')+ ...'(在SET中@ SQLExcuteSentence'語句)。 –