0

関数の設定方法がわかりませんOpenQuery

OpenQueryテストプロジェクトでデータベースをクエリするために使用したい。しかし、サーバー名パラメーターを構成する方法がわかりません

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は何ですか??

4

2 に答える 2

2

OPENQUERYでは、最初にsp_addlinkedserverを使用してリンクサーバーを設定する必要があります。ここに接続文字列が設定されます。

その後OPENQUERY、リンクサーバーに対してクエリを実行するために使用できます。

于 2012-10-30T06:14:29.660 に答える
1

SQL Server Management Studio を使用しない場合、localhost は次のようになります。

EXEC sp_addlinkedserver
@server='LOCALSERVER',               -- name definition for later use in OpenQuery
@srvproduct='SQLSERVER',             
@provider='SQLNCLI',                 -- provider name
@datasrc='SERVERNAME\INSTANCENAME'   -- im not sure if there should be '\' or not

Excel ファイルを使用したその他の例 ( Manojコードに基づく):

EXEC sp_addLinkedServer
@server= N'XLSX_2010',
@srvproduct = N'Excel',
@provider = N'Microsoft.ACE.OLEDB.12.0',
@datasrc = N'C:\Users\SomeUser\Desktop\file.xlsx',
@provstr = N'Excel 12.0; HDR=Yes';

SQL Server Management Studio を使用する場合と使用しない場合の localhost の例:

http://sqlserverplanet.com/sql-server/local-linked-server

于 2012-10-30T06:17:00.747 に答える