Click here to Skip to main content
15,880,796 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
here getting first table value in second table and setting identity for id this is not working anyother way....

SQL
CREATE TABLE TestTable2
    (
    
      srlNo int NOT NULL
             IDENTITY(1, 1),
      Id    varchar(100),
      Name varchar(50) NULL,
      Addres varchar(100)
    )
ON  [PRIMARY]
go

CREATE TABLE TempTable2
    (
      Identifier    int NOT NULL
                     IDENTITY(1, 1),
      Id as 'test'+cast(Identifier as varchar(100)), 
                    
      Name           varchar(50) NULL,
      Addres         varchar(100)
    )
ON  [PRIMARY]
go

SET IDENTITY_INSERT TempTable2 ON
go

IF EXISTS ( SELECT  *
            FROM    TestTable2 ) 
    INSERT  INTO TempTable2 ( Id, Name,Addres )
            SELECT  Id,
                    Name,
                    Addres
            FROM    TestTable2 TABLOCKX
go

SET IDENTITY_INSERT TempTable2 OFF
go

DROP TABLE TestTable2
go

Exec sp_rename 'TempTable2', 'TestTable2'


C#
Error like this:
-----------------
Msg 271, Level 16, State 1, Line 4
The column "Id" cannot be modified because it is either a computed column or is the result of a UNION operator.
Caution: Changing any part of an object name could break scripts and stored procedures.
Posted
Updated 27-Jul-12 0:36am
v2

In case if user wants identity also in varchar column for the above scenario..


SQL
drop table testtable2
go
CREATE TABLE TestTable2 (
srlNo int NOT NULL IDENTITY(1, 1),
Id varchar(100),
Name varchar(50) NULL,
Addres varchar(100)
) ON [PRIMARY]
go

insert into TestTable2 values('test1','sant','test')
go
CREATE TABLE TempTable2 (
Identifier int NOT NULL IDENTITY(1, 1),
Id as 'test'+cast(Identifier as varchar(100)),
Name varchar(50) NULL,
Addres varchar(100)
) ON [PRIMARY]
go
SET IDENTITY_INSERT TempTable2 ON
go
IF EXISTS ( SELECT * FROM TestTable2 )
INSERT INTO TempTable2 (Identifier, Name,Addres )
SELECT srlNo,Name, Addres FROM TestTable2
TABLOCKX
go
SET IDENTITY_INSERT TempTable2 OFF
go
DROP TABLE TestTable2
go
Exec sp_rename 'TempTable2', 'TestTable2'

select * from testtable2
 
Share this answer
 
v2
Comments
oliver grace 27-Jul-12 6:49am    
EXCELLENT THANKS A LOT.....
Raghunatha_Reddy_S 27-Jul-12 6:59am    
5*
oliver grace 27-Jul-12 7:03am    
BUT HERE I AM NOT GETTING EXISTING TABLE Id values
oliver grace 27-Jul-12 7:16am    
name,address i am getting fine except id ...
new id's generating for existing table data's
Santhosh Kumar Jayaraman 27-Jul-12 7:21am    
No. You cant retain Id column values since id in new table depends on Identifier column
Try this:
SQL
CREATE TABLE TestTable2
    (
    
      srlNo int NOT NULL
             IDENTITY(1, 1),
      Id    varchar(100),
      Name varchar(50) NULL,
      Addres varchar(100)
    )
ON  [PRIMARY]
GO
 
CREATE TABLE TempTable2
    (
      Identifier    int NOT NULL
                     IDENTITY(1, 1),
      Id as 'test'+cast(Identifier as varchar(100)), 
                    
      Name           varchar(50) NULL,
      Addres         varchar(100)
    )
ON  [PRIMARY]
GO

SET IDENTITY_INSERT TempTable2 ON
GO
 
IF EXISTS
(SELECT *
 FROM
	 TestTable2)
INSERT
INTO
	TempTable2 (Id
			  , Name
			  , Addres)
SELECT Id
	 , Name
	 , Addres
FROM
	TestTable2 TABLOCKX
GO

SET IDENTITY_INSERT TempTable2 ON --Make IDENTITY_INSERT ON
GO

DROP TABLE TestTable2
GO

EXEC sp_rename 'TempTable2', 'TestTable2'
 
Share this answer
 
Try this, You are trying to insert into an identity field.

SQL
CREATE TABLE TestTable2
    (
    
      srlNo int NOT NULL
             IDENTITY(1, 1),
      Id    varchar(100),
      Name varchar(50) NULL,
      Addres varchar(100)
    )
ON  [PRIMARY]
go
 
CREATE TABLE TempTable2
    (
      Identifier    int NOT NULL
                     IDENTITY(1, 1),
      Id as 'test'+cast(Identifier as varchar(100)), 
                    
      Name           varchar(50) NULL,
      Addres         varchar(100)
    )
ON  [PRIMARY]
go
 
SET IDENTITY_INSERT TempTable2 ON
go
 
IF EXISTS ( SELECT  *
            FROM    TestTable2 ) 
    INSERT  INTO TempTable2 ( Name,Addres )
            SELECT  
                    Name,
                    Addres
            FROM    TestTable2 TABLOCKX
go
 
SET IDENTITY_INSERT TempTable2 OFF
go
 
DROP TABLE TestTable2
go
 
--Exec sp_rename 'TempTable2', 'TestTable2'
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900