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

SQL सर्वर कॉलम से पहचान कैसे छोड़ें

यदि आप SQL Server 2005 या उसके बाद के संस्करण पर हैं, तो आप इसे एक साधारण मेटाडेटा परिवर्तन के रूप में कर सकते हैं (NB:नहीं विभाजन का समर्थन करने वाले संस्करण की आवश्यकता है जैसा कि मैंने मूल रूप से कहा था)।

उदाहरण कोड को पॉल व्हाइट द्वारा यह Microsoft Connect आइटम

USE tempdb;
GO
-- A table with an identity column
CREATE TABLE dbo.Source 
(row_id INTEGER IDENTITY PRIMARY KEY NOT NULL, data SQL_VARIANT NULL);
GO
-- Some sample data
INSERT dbo.Source (data)
VALUES (CONVERT(SQL_VARIANT, 4)),
        (CONVERT(SQL_VARIANT, 'X')),
        (CONVERT(SQL_VARIANT, {d '2009-11-07'})),
        (CONVERT(SQL_VARIANT, N'áéíóú'));
GO
-- Remove the identity property
BEGIN TRY;
    -- All or nothing
    BEGIN TRANSACTION;

    -- A table with the same structure as the one with the identity column,
    -- but without the identity property
    CREATE TABLE dbo.Destination 
    (row_id INTEGER PRIMARY KEY NOT NULL, data SQL_VARIANT NULL);

    -- Metadata switch
    ALTER TABLE dbo.Source SWITCH TO dbo.Destination;

    -- Drop the old object, which now contains no data
    DROP TABLE dbo.Source;

    -- Rename the new object to make it look like the old one
    EXECUTE sp_rename N'dbo.Destination', N'Source', 'OBJECT';

    -- Success
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    -- Bugger!
    IF XACT_STATE() <> 0 ROLLBACK TRANSACTION;
    PRINT ERROR_MESSAGE();
END CATCH;
GO

-- Test the the identity property has indeed gone
INSERT dbo.Source (row_id, data)
VALUES (5, CONVERT(SQL_VARIANT, N'This works!'))

SELECT row_id,
        data
FROM    dbo.Source;
GO

-- Tidy up
DROP TABLE dbo.Source;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्तंभ मान के आधार पर पंक्तियाँ बनाना

  2. बीसीपी उपयोगिता और एसक्यूएल सर्वर 2008 का उपयोग करके कॉलम हेडर (कॉलम नाम) के साथ फाइल करने के लिए निर्यात तालिका

  3. SQL सर्वर में प्राथमिक कुंजी कैसे बनाएं (T-SQL उदाहरण)

  4. SQL सर्वर 2005 ने एक निष्पादन योजना को कैश किया जो कभी काम नहीं कर सका

  5. SQL में एक शीर्ष स्तरीय अभिभावक ढूँढना