मुझे एक कॉलम UPPER CASE में सभी डेटा बनाने के लिए SQL क्वेरी की आवश्यकता है?
कोई विचार?
जवाबों:
यदि आप केवल उन पंक्तियों पर अपडेट करना चाहते हैं जो वर्तमान में अपरकेस नहीं हैं (सभी पंक्तियों के बजाय), तो आपको COLLATE
निम्न अंतर को पहचानना होगा:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
मामले की संवेदनशीलता आपकी कोलाज सेटिंग्स पर आधारित है, और आमतौर पर डिफ़ॉल्ट रूप से असंवेदनशील है।
सर्वर, डेटाबेस, कॉलम, या क्वेरी स्तर पर Collation सेट किया जा सकता है :
-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
कोलाज़ नाम निर्दिष्ट करते हैं कि एक स्ट्रिंग को कैसे एन्कोड किया जाना चाहिए और उदाहरण के लिए पढ़ा जाना चाहिए:
Latin1_General_CI_AS
→ केस असंवेदनशीलLatin1_General_CS_AS
→ केस सेंसिटिव