sql server - एसक्यूएल सर्वर में एक टेबल का नाम कैसे बदलें?




sql-server rename (4)

मैंने जो SQL क्वेरी उपयोग की है वह है:

ALTER TABLE oldtable RENAME TO newtable;

लेकिन, यह मुझे एक त्रुटि देता है।

सर्वर: संदेश 156, स्तर 15, राज्य 1, रेखा 1
कीवर्ड 'TO' के पास गलत वाक्यविन्यास।


SQL सर्वर में किसी तालिका का नाम बदलने के लिए, sp_rename कमांड का उपयोग करें:

exec sp_rename 'schema.old_table_name', 'new_table_name'

Sp_rename का उपयोग करते समय जो उपर्युक्त उत्तरों में काम करता है, फिर भी जांचें कि कौन से ऑब्जेक्ट्स का नाम बदलने के बाद प्रभावित होता है, जो उस तालिका को संदर्भित करता है, क्योंकि आपको उन्हें भी बदलने की ज़रूरत है

मैंने here पिनल डेव के ब्लॉग पर तालिका निर्भरताओं के लिए एक कोड उदाहरण लिया

USE AdventureWorks
GO
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'Customer'

इसलिए, इन सभी निर्भर वस्तुओं को भी अद्यतन करने की आवश्यकता है

या यदि आप कर सकते हैं तो कुछ ऐड-इन का उपयोग करें, उनमें से कुछ में ऑब्जेक्ट का नाम बदलने की सुविधा है, और सभी निर्भर, एंटी ऑब्जेक्ट्स भी


तालिका नाम

sp_rename "db_name.old_table_name", "new_table_name"

स्तंभ

sp_rename "db_name.old_table_name.name", "userName", "COLUMN"

सूची

sp_rename "db_name.old_table_name.id", "product_ID", "INDEX"

सांख्यिकी और डेटाटाइप के लिए भी उपलब्ध है


यदि आप exec sp_rename निष्पादित करने का प्रयास करते हैं और LockMatchID त्रुटि प्राप्त करते हैं तो यह पहले [डेटाबेस] कथन का उपयोग करने में मदद कर सकता है:

मैंने कोशिश की

 exec sp_rename '[database_name].[dbo].[table_name]', 'new_table_name';

इसे ठीक करने के लिए मुझे क्या करना था इसे फिर से लिखना था:

use database_name
exec sp_rename '[dbo].[table_name]', 'new_table_name';




alter-table