Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

OPENROWSET अपने तर्कों के लिए चर स्वीकार नहीं करता है (SQL सर्वर)

अगर आप OPENROWSET . का इस्तेमाल करने की कोशिश कर रहे हैं SQL सर्वर में एक तदर्थ वितरित क्वेरी चलाने के लिए, लेकिन आपको एक "गलत सिंटैक्स" त्रुटि मिलती रहती है, और आप अपने सिंटैक्स में कुछ भी गलत नहीं देख सकते हैं, यह हो सकता है कि आप इनमें से किसी एक के लिए एक चर का उपयोग करने का प्रयास कर रहे हों तर्क।

जैसा कि इस पोस्ट के शीर्षक में बताया गया है, OPENROWSET अपने तर्कों के लिए चर स्वीकार नहीं करता है।

यदि आप तर्क के रूप में चर का उपयोग कर रहे हैं, तो इन्हें स्ट्रिंग अक्षर में बदलने का प्रयास करें।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।

DECLARE @tsql varchar(500);
SET @tsql = 'SELECT * FROM Test.dbo.Cats';
SELECT * FROM OPENROWSET(
    'SQLNCLI', 
    'Server=MyLinkedServer;Trusted_Connection=yes;', 
    @tsql);

परिणाम:

Msg 102, Level 15, State 1, Line 16
Incorrect syntax near '@tsql'.

यदि आप Microsoft दस्तावेज़ों की जाँच करते हैं, तो आप देख सकते हैं कि यह स्पष्ट रूप से बताता है कि:

<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">

OPENROWSET अपने तर्कों के लिए चर स्वीकार नहीं करता है।

इसलिए यदि हम उपरोक्त कोड को बदलते हैं ताकि सभी तर्क स्ट्रिंग अक्षर हों, तो हमें अब कोई त्रुटि नहीं मिलती है।

SELECT * FROM OPENROWSET(
    'SQLNCLI', 
    'Server=MyLinkedServer;Trusted_Connection=yes;', 
    'SELECT * FROM Test.dbo.Cats');

परिणाम:

+---------+-------------+
| CatId   | CatName     |
|---------+-------------|
| 1       | Meow        |
| 2       | Fluffy      |
| 3       | Scratch     |
| 4       | Bulldog     |
| 5       | King George |
| 6       | Sharp       |
| 7       | Fritz       |
| 8       | Garfield    |
| 9       | Boss        |
+---------+-------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर का उपयोग करके रिवर्स ऑर्डर में स्ट्रिंग कैसे लौटाएं - रिवर्स ()

  2. SQLDiag टूल का उपयोग करके प्रदर्शन डेटा एकत्र करें | SQL सर्वर प्रदर्शन समस्या निवारण -6

  3. एक संग्रहीत प्रक्रिया पैरामीटर सूची में एक अभिव्यक्ति (जैसे फ़ंक्शन कॉल) के परिणाम का उपयोग करना?

  4. एसक्यूएल 2005 में पिवोट

  5. SQL सर्वर डेटाबेस को क्लाउड पर ले जाना