Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

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

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

QUAN TRỌ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
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
back to the top

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)				
back to the top

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) 				
back to the top

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				
back to the top
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"
back to the top
phân phối truy vấn liên kết máy chủ thông số biến động xây dựng

Thuộc tính

ID Bài viết: 314520 - Xem lại Lần cuối: 08/27/2011 21:47:00 - Bản sửa đổi: 2.0

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

  • kbhowtomaster kbmt KB314520 KbMtvi
Phản hồi