एसक्यूएल (एमएस एसक्यूएल सर्वर 2005 संस्करण) का उपयोग कर तालिका कॉलम का नाम बदलने के लिए सबसे अच्छा अभ्यास क्या है? यह मानता है कि कॉलम में डेटा है जिसे संरक्षित किया जाना चाहिए।एमएस एसक्यूएल सर्वर 2005 में एक कॉलम का नाम बदलना
23
A
उत्तर
47
आपको कॉलम का नाम बदलने के लिए एक संग्रहित प्रो का उपयोग करना होगा। निम्नलिखित किसी भी डेटा को प्रभावित किए बिना 'oldColumnName' से 'newColumnName' तक आपके कॉलम का नाम बदल जाएगा।
EXEC sp_rename 'tableName.[oldColumnName]', 'newColumnName', 'COLUMN'
जाहिर है आपको किसी भी कोड/संग्रहीत प्रोसेस/एसक्यूएल को मैन्युअल रूप से पुराने नाम का उपयोग करने के लिए अपडेट करना होगा।
0
मुझे आज भी यही समस्या थी, और समाधान डेटाबेस पर सभी प्रक्रियाओं को मार डाला गया था, क्योंकि प्रक्रियाओं को लेनदेन को बंद कर दिया गया था। मुझे प्रक्रिया sp_rename निष्पादित किया गया था, लेकिन समस्या हल नहीं हुई थी। तो मैं डेटाबेस में प्रक्रियाओं को मार रहा था और proc काम करता है।
USE MASTER
GO
--Kill all the connections opened in database.
DECLARE @dbname sysname
SET @dbname = 'database_name'
DECLARE @spid int
SELECT @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname)
WHILE @spid IS NOT NULL
BEGIN
EXECUTE ('KILL ' + @spid)
SELECT @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname) AND spid > @spid
END
SELECT request_session_id
FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID('database_name')