Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

प्रोग्रामेटिक रूप से गैर-पहचान कॉलम को पहचान में कैसे बदलें?

जहां तक ​​​​मुझे पता है, आपको पहचान के रूप में बनाए गए आईडी फ़ील्ड के साथ एक अस्थायी तालिका बनानी होगी, फिर मूल तालिका से सभी डेटा की प्रतिलिपि बनाएँ। अंत में, आप मूल तालिका को छोड़ देते हैं और अस्थायी का नाम बदल देते हैं। यह एक तालिका के साथ एक उदाहरण है (नाम टेस्टटेबल ) जिसमें केवल एक फ़ील्ड है, जिसे आईडी कहा जाता है (पूर्णांक, गैर पहचान):

BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_TestTable
    (
    ID int NOT NULL IDENTITY (1, 1)
    )  ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable ON
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
     EXEC('INSERT INTO dbo.Tmp_TestTable (ID)
        SELECT ID FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable OFF
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT' 
GO
COMMIT


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS के माध्यम से SQL सर्वर एजेंट सक्षम करें

  2. एसक्यूएल सर्वर 2008 - जीएमटी (यूटीसी) डेटाटाइम को स्थानीय डेटाटाइम में कैसे परिवर्तित करें?

  3. SQL सर्वर में ऑब्जेक्ट का नाम उसके ऑब्जेक्ट_आईडी से प्राप्त करने के लिए OBJECT_NAME() का उपयोग करें

  4. चयन कथन में एक पैरामीटर के रूप में कॉलम नाम निर्दिष्ट करना?

  5. इकाई फ्रेमवर्क - डिफ़ॉल्ट मान sql सर्वर तालिका में सेट नहीं होते हैं