Finding tables with identity column using SQL
Part - 27
Link for video answer:
--**************************************************************************************
-- Q27 -- Query to find tables with Identity columns in SQL
--**************************************************************************************
--> Identity Column
--> IDENTITY [ (seed , increment) ]
CREATE TABLE new_employees   
(  
 Empid int IDENTITY(1,1),  --> Identity column
 EmpName varchar (20),  
 Salary int,  
 EmpLocation varchar(30)  
);  
sp_help new_employees
insert new_employees values ('Richard',10000,'US'),('John',20000,'UK'),('George',25000,'India')
insert new_employees values (4,'Richard',10000,'US')
-- IDENTITY_INSERT is ON
SELECT * FROM new_employees
--> Method 1:
--> To Find Table and column names with identity columns 
select object_name(object_id) AS TABLE_NAME, Name AS COLUMN_NAME, * from sys.identity_columns 
select object_name(object_id)AS TABLE_NAME, Name AS COLUMN_NAME,  seed_value, increment_value from sys.identity_columns 
--> Method 2:
select object_name(object_id) AS TABLE_NAME, name AS COLUMN_NAME,* from sys.columns where is_identity = 1
--> Method 3:
--> To fect the Table Name and Column Name of Identity Tables:
select TABLE_NAME, COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
where COLUMNPROPERTY(object_id(TABLE_SCHEMA+'.'+TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
order by TABLE_NAME 
select * from INFORMATION_SCHEMA.COLUMNS
--> To fetch Table_name, identity column name, seed, increment, max identity value
select TABLE_NAME, COLUMN_NAME, IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS Seed, 
IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS Increment,
IDENT_CURRENT(TABLE_SCHEMA + '.' + TABLE_NAME) AS Current_Identity_Value
from INFORMATION_SCHEMA.COLUMNS
where COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
order by TABLE_NAME 
-- COLUMNPROPERTY( id , column , property )   
SELECT DISTINCT OBJECT_ID('tblCountry')
--> Method 4:
SELECT 
tables.TABLE_NAME,
IDENT_SEED(tables.TABLE_SCHEMA + '.' + tables.TABLE_NAME) AS Seed,
IDENT_INCR(tables.TABLE_SCHEMA + '.' + tables.TABLE_NAME) AS Increment,
IDENT_CURRENT(tables.TABLE_SCHEMA + '.' + tables.TABLE_NAME) AS Current_Identity_Value
FROM INFORMATION_SCHEMA.TABLES tables 
WHERE OBJECTPROPERTY(OBJECT_ID(tables.TABLE_SCHEMA + '.' + tables.TABLE_NAME), 'TableHasIdentity') = 1
AND tables.TABLE_TYPE = 'BASE TABLE'
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES
--> OBJECT PROPERTIES
	TableHasIdentity
	TableHasPrimaryKey
	TableHasForeignKey
	TableHasIndex
	TableHasClustIndex
	TableHasNonclustIndex
	TableIsMemoryOptimized
	TableInsertTrigger
	TableTemporalType
No comments:
Post a Comment