Friday, May 15, 2015

HOW TO ADD IDENTITY PROPERTY TO THE EXISTING TABLE AND RESEED TO MAX

--we have data in that table then we follow below steps to add identity
--And also next inserted value should be resse to max+1

/*
A table without an IDENTITY column. 
We want to add the IDENTITY property to the Col1 column
*/
CREATE TABLE AddIdentity ( Col1 INT NOT NULL, Col2 VARCHAR(10) NOT NULL, CONSTRAINT pkAddIdentity PRIMARY KEY (Col1)
);
/*
A temporary table, with the schema identical to the AddIdentity table, 
except that the Col1 column has the IDENTITY property
*/
CREATE TABLE AddIdentityTemp ( Col1 INT NOT NULL IDENTITY(1,1), Col2 VARCHAR(10) NOT NULL, CONSTRAINT pkAddIdentityTemp PRIMARY KEY (Col1)
);
-- Insert test data INSERT INTO AddIdentity (Col1Col2) VALUES (1'a'); -- Switch data into temporary table ALTER TABLE AddIdentity SWITCH TO AddIdentityTemp; -- Look at the switched data SELECT Col1Col2 FROM AddIdentityTemp; -- Drop the original table, which is now empty DROP TABLE AddIdentity; -- Rename the temporary table, and all constraints, to match the original table EXEC sp_rename 'AddIdentityTemp''AddIdentity''OBJECT'; EXEC sp_rename 'pkAddIdentityTemp''pkAddIdentity''OBJECT'; -- Reseed the IDENTITY property to match the maximum value in Col1 DBCC CHECKIDENT (AddIdentityRESEED); -- Insert test data INSERT INTO AddIdentity (Col2) VALUES ('b'); -- Confirm that a new IDENTITY value has been generated SELECT Col1Col2 FROM AddIdentity



-------BY USING ALTER TO ADD IDENTITY TO THAT TABLE 

DECLARE @max_identity NVARCHAR(20)
DECLARE @SQL NVARCHAR(MAX)=''
SELECT @max_identity=ISNULL(MAX(responsys_complaint_id)+1,1) FROM Email.dbo.Responsys_Complaint
SET @SQL=@SQL+'ALTER TABLE Email.dbo.Responsys_Complaint ALTER COLUMN responsys_complaint_id IDENTITY(CAST('+@max_identity+' AS INT),1) NOT NULL'
PRINT @SQL
--EXEC(@SQL)

Tuesday, May 5, 2015

NEW DATACONVERSION FUNCTIONS IN SQL SERVER 2012

In 2008 we have only two types of data conversion functions are available

That are         1. cast()
                   2.convert()

1.cast():