SQL सर्वर में, OPENQUERY
रोसेट फ़ंक्शन आपको लिंक किए गए सर्वर पर पास-थ्रू क्वेरी निष्पादित करने में सक्षम बनाता है।
OPENQUERY
आमतौर पर FROM
. में संदर्भित किया जाता है किसी क्वेरी का खंड मानो वह एक तालिका हो, लेकिन इसे INSERT
की लक्ष्य तालिका के रूप में भी संदर्भित किया जा सकता है , UPDATE
, या DELETE
बयान।
यह लेख OPENQUERY
. का उपयोग करने का एक उदाहरण प्रस्तुत करता है एक UPDATE
करने के लिए पास-थ्रू क्वेरी।
उदाहरण
मान लीजिए लिंक किए गए सर्वर को Homer
. कहा जाता है Pets
. में एक टेबल है डेटाबेस जिसे Cats
. कहा जाता है निम्नलिखित डेटा के साथ।
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
परिणाम:
+---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Long Tail | +---------+-----------+
और मान लें कि हम बिल्ली के नामों में से एक को अपडेट करना चाहते हैं।
हम UPDATE
. का उपयोग करके ऐसा कर सकते हैं लिंक किए गए सर्वर के विरुद्ध पास-थ्रू क्वेरी, इस तरह।
UPDATE OPENQUERY (
Homer,
'SELECT CatName FROM Pets.dbo.Cats WHERE CatId = 3'
)
SET CatName = 'Short Tail';
परिणाम:
(1 row affected)
परिणाम जांचें
अब हम एक SELECT
चला सकते हैं परिणाम देखने के लिए पास-थ्रू क्वेरी।
SELECT * FROM OPENQUERY (
Homer,
'SELECT * FROM Pets.dbo.Cats'
);
परिणाम:
+---------+------------+ | CatId | CatName | |---------+------------| | 1 | FluffDupp | | 2 | Scratch | | 3 | Short Tail | +---------+------------+
जैसा कि अपेक्षित था, तीसरी पंक्ति को अब अपडेट कर दिया गया है।
एक बात मुझे बतानी चाहिए कि OPENQUERY
अपने तर्कों के लिए चर स्वीकार नहीं करता है।