2013-05-15 2 views
0
ID EmployeeName Address PhoneNo EmailID DOB DOJ Designation Department CraetedDate 
2 Sabarish Saidapet 9600387983 [email protected] -1973 -2012 Ase Software 2013-05-15 17:07:43.223 
10 Karthik Chrompet 9865028330 [email protected] -1968 -2008 SoftwareEngineeer Software 2013-05-15 15:40:41.613 
15 Sabarish Saidapet 9600387983 [email protected] -1973 -2012 Ase Software 2013-05-15 17:07:12.003 

В приведенной выше таблице id столбец является identity столбец, и я хочу, чтобы мои значения идентификаторов как 1,2,3 вместо 2,10,15, как это сделать?как обновить столбец идентификации значений

+0

http://stackoverflow.com/questions/751522/how-to-change -identity-column-values-программно – lex87

+3

Вы не можете обновить напрямую, вам нужно удалить и затем повторно вставить новую строку значений – Justin

+0

@ Justin: вы сказали, что это совершенно неправильно. См. Duplicate – gbn

ответ

1

Попробуйте один -

Запрос:

IF OBJECT_ID (N'dbo.test') IS NOT NULL 
    DROP TABLE dbo.test 

CREATE TABLE dbo.test 
(
     ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY 
    , EmployeeName VARCHAR(50) NOT NULL 
) 

SET IDENTITY_INSERT dbo.test ON 

INSERT INTO dbo.test 
(
     ID 
    , EmployeeName 
) 
VALUES 
    (2, 'Sabarish Saidapet'), 
    (10, 'Karthik Chrompet'), 
    (15, 'Sabarish Saidapet') 

SET IDENTITY_INSERT dbo.test OFF 

SET IDENTITY_INSERT dbo.test ON 

DECLARE @temp TABLE 
(
     ID INT NOT NULL 
     , EmployeeName VARCHAR(50) NOT NULL 
) 

INSERT INTO @temp (EmployeeName, ID) 
SELECT 
     t.EmployeeName 
    , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) 
FROM dbo.test t 

TRUNCATE TABLE dbo.test 
--DELETE FROM dbo.test 

INSERT INTO dbo.test (ID, EmployeeName) 
SELECT ID, EmployeeName FROM @temp 

SET IDENTITY_INSERT dbo.test OFF 

INSERT INTO dbo.test (EmployeeName) 
VALUES ('test 4') 

SELECT * 
FROM dbo.test t 

Выход:

ID   EmployeeName 
----------- -------------------------------------------------- 
1   Sabarish Saidapet 
2   Karthik Chrompet 
3   Sabarish Saidapet 
4   test 4