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 अपने तर्कों के लिए चर स्वीकार नहीं करता है।