मैं एसक्यूएल सर्वर डेटाबेस है और मैं सिर्फ एहसास हुआ कि मैं से स्तंभों में से एक का प्रकार बदल सकते हैं int
करने के लिए bool
।
मैं उस तालिका में पहले से दर्ज किए गए डेटा को खोए बिना कैसे कर सकता हूं?
मैं एसक्यूएल सर्वर डेटाबेस है और मैं सिर्फ एहसास हुआ कि मैं से स्तंभों में से एक का प्रकार बदल सकते हैं int
करने के लिए bool
।
मैं उस तालिका में पहले से दर्ज किए गए डेटा को खोए बिना कैसे कर सकता हूं?
जवाबों:
आप निम्न कमांड का उपयोग करके आसानी से कर सकते हैं। 0 का कोई भी मान 0 (BIT = false) में बदल जाएगा, और कुछ भी 1 (BIT = true) में बदल जाएगा।
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
दूसरा विकल्प यह होगा कि आप एक नया कॉलम टाइप करें BIT
, उसे पुराने कॉलम से भरें, और एक बार काम पूरा हो जाने के बाद, पुराने कॉलम को छोड़ दें और नए को पुराने नाम से बदलें। इस तरह, यदि रूपांतरण के दौरान कुछ गलत हो जाता है, तो आप हमेशा वापस जा सकते हैं क्योंकि आपके पास अभी भी सारा डेटा है।
NULL
रहता है NULL
, 0
बन जाता है False
, गैर-शून्य मान (1, -1, 1999, -987 ...) बन जाता है True
।
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
नोट: यदि स्तंभों का आकार है, तो आकार भी लिखें।
यदि यह एक वैध परिवर्तन है।
आप संपत्ति को बदल सकते हैं।
उपकरण -> विकल्प -> डिजाइनर -> तालिका और डेटाबेस डिजाइनर -> अनचेक -> बचत परिवर्तन को रोकते हैं जो आवश्यक तालिका पुन: निर्माण करते हैं।
अब आप आसानी से तालिका को फिर से बनाए बिना या यूआर रिकॉर्ड खोए स्तंभ नाम बदल सकते हैं।
आपको क्यों लगता है कि आप डेटा खो देंगे? बस प्रबंधन स्टूडियो में जाएं और डेटा प्रकार बदलें। यदि मौजूदा मूल्य को बूल (बिट) में परिवर्तित किया जा सकता है, तो वह ऐसा करेगा। दूसरे शब्दों में, यदि आपके मूल क्षेत्र में झूठे "1" नक्शे सही और "0" नक्शे हैं, तो आप ठीक हो जाएंगे।
यदि आप T-SQL (MSSQL) का उपयोग करते हैं; आपको इस स्क्रिप्ट को आज़माना चाहिए:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
यदि आप MySQL का उपयोग करते हैं; आपको इस स्क्रिप्ट को आज़माना चाहिए:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
यदि आप Oracle का उपयोग करते हैं; आपको इस स्क्रिप्ट को आज़माना चाहिए:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
कॉलम के चेक प्रकार के साथ अलर्ट कॉलम डेटा प्रकार:
IF EXISTS(
SELECT 1
FROM sys.columns
WHERE NAME = 'YourColumnName'
AND [object_id] = OBJECT_ID('dbo.YourTable')
AND TYPE_NAME(system_type_id) = 'int'
)
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
मेरे लिए, sql सर्वर 2016 में, मैं इसे इस तरह से करता हूं
* कॉलम कॉलम 1 से कॉलम 2 का नाम बदलना
EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'
* कॉलम को स्ट्रिंग से int में संशोधित करने के लिए :( कृपया सुनिश्चित करें कि डेटा सही प्रारूप में हैं )
ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2 int;
मैं इन निम्नलिखित क्वेरी के साथ तालिका क्षेत्र के डेटाटाइप को संशोधित कर सकता हूं: और Oracle DB में भी,
ALTER TABLE table_name
MODIFY column_name datatype;
डेटा खोए बिना डेटाटाइप को बदलें
alter table tablename modify columnn newdatatype(size);