Làm th? nào ð? vý?t qua m?t bi?n v?i m?t truy v?n máy ch? ðý?c liên k?t

ID c?a bài: 314520 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này mô t? cách ð? vý?t qua m?t bi?n v?i m?t truy v?n máy ch? ðý?c liên k?t.

Khi b?n truy v?n m?t máy ch? ðý?c liên k?t, b?n thý?ng xuyên th?c hi?n m?t truy v?n pass-through s? d?ng OPENQUERY, OPENROWSET ho?c OPENDATASOURCE tuyên b?. B?n có th? xem các ví d? trong SQL Server sách m?ng ð? xem làm th? nào ð? làm ði?u này b?ng cách s? d?ng ðý?c xác ð?nh trý?c Transact-SQL strings, nhýng không có không có ví d? v? làm th? nào ð? vý?t qua m?t bi?n v?i các ch?c nãng này. Bài vi?t này cung c?p ba ví d? v? làm th? nào ð? vý?t qua m?t bi?n v?i m?t truy v?n máy ch? ðý?c liên k?t.

Ð? vý?t qua m?t bi?n v?i m?t trong các ch?c nãng pass-through, b?n ph?i xây d?ng m?t truy v?n nãng ð?ng.

B?t k? d? li?u nào bao g?m các báo giá nhu c?u c? th? x? l?. Ð? bi?t thêm chi ti?t, xem ch? ð? "s? d?ng char và varchar d? li?u" trong SQL Server sách tr?c tuy?n và xem bài vi?t sau trong cõ s? ki?n th?c Microsoft:
156501 INF: QUOTED_IDENTIFIER và b? dây v?i d?u ngo?c kép ðõn

Vý?t qua giá tr? cõ b?n

Khi Transact-SQL tuyên b? cõ b?n ðý?c bi?t ð?n, nhýng b?n ph?i vý?t qua trong m?t ho?c nhi?u giá tr? c? th?, s? d?ng m? s? ðó là týõng t? nhý m?u sau:
      DECLARE @TSQL varchar(8000), @VAR char(2)
      SELECT  @VAR = 'CA'
      SELECT  @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'
      EXEC (@TSQL)
				

Vý?t qua toàn b? truy v?n

Khi b?n ph?i vý?t qua trong các truy v?n Transact SQL toàn b? ho?c tên máy ch? ðý?c liên k?t (ho?c c? hai), s? d?ng m? s? ðó là týõng t? nhý m?u sau:
DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000)
SET @LinkedServer = 'MyLinkedServer'
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')' 
EXEC (@OPENQUERY+@TSQL) 
				

S? d?ng Sp_executesql lýu tr? th? t?c

Ð? tránh các d?u ngo?c kép ða l?p, s? d?ng m? s? ðó là týõng t? nhý m?u sau:
DECLARE @VAR char(2)
SELECT  @VAR = 'CA'
EXEC MyLinkedServer.master.dbo.sp_executesql
     N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
     N'@state char(2)',
     @VAR
				

THAM KH?O

Ð? bi?t thêm chi ti?t, xem các ch? ð? sau trong SQL Server sách tr?c tuy?n:
"OPENROWSET"
"OPENQUERY"
"OPENDATASOURCE"
"B?ng cách s? d?ng sp_executesql"
"sp_executesql"

Thu?c tính

ID c?a bài: 314520 - L?n xem xét sau cùng: 27 Thaìng Taìm 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
T? khóa: 
kbhowtomaster kbmt KB314520 KbMtvi
Máy d?ch
QUAN TROòNG: Bài vi?t này ðý?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngý?i d?ch. Microsoft cung c?p các bài vi?t do con ngý?i d?ch và c? các bài vi?t do máy d?ch ð? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cõ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng nhý m?t ngý?i ný?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t ð?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thý?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào ðây ð? xem b?n ti?ng Anh c?a bài vi?t này:314520

Cung câìp PhaÒn hôÌi