2012-10-15 12 views
12

संभव डुप्लिकेट:
SQL: Select dynamic column name based on variableमैं एसक्यूएल सर्वर में स्तंभ नाम के रूप में बयान चयन करने के लिए चर प्रदान कर सकता हूँ

मैं निम्नलिखित सरल select बयान है:

DECLARE @value varchar(10) 
SET @value = 'intStep' 

SELECT @value FROM dbo.tblBatchDetail 

मैं

की कोशिश की है
SELECT CAST(@value AS varchar(10)) FROM dbo.tblBatchDetail 

और सभी मैं की intstep

प्रश्न एक सूची प्राप्त: मैं इस बयान के स्तंभ नाम के रूप में चर पारित कर सकते हैं? या यह

कर मैं एसक्यूएल सर्वर 2008 (9.0 RTM) का उपयोग कर रहा का सबसे अच्छा तरीका क्या है

यह एक संग्रहीत प्रक्रिया हो जाएगा

अग्रिम

+1

जरूरत है मुझे लगता है कि यह इस सवाल [एक स्तंभ नाम निर्दिष्ट करने के गतिशील एसक्यूएल का उपयोग का एक dup है सरल एसक्यूएल करने के लिए एक चर जोड़कर क्वेरी] (http://stackoverflow.com/questions/7123659/using-dynamic-sql-to-specify-a-column-name-by-adding-a-variable-to-simple-sql-qu) – Spevy

उत्तर

26

आप उपयोग नहीं कर सकते धन्यवाद चर नाम कॉलम या अन्य प्रणाली वस्तुओं बाध्य करने के लिए, आप गतिशील एसक्यूएल

DECLARE @value varchar(10) 
SET @value = 'intStep' 
DECLARE @sqlText nvarchar(1000); 

SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail' 
Exec (@sqlText) 
+0

मुझे मिलता है यह त्रुटि संदेश 2812, स्तर 16, राज्य 62, रेखा 6 संग्रहित प्रक्रिया 'dbo.tblBatchDetail से चयन intStep' नहीं ढूंढ सका। –

+2

क्षमा करें @sqlText के आसपास कोष्ठक भूल गए, उत्तर – Steve

+0

अपडेट अब धन्यवाद –

संबंधित मुद्दे