परिदृश्य:
कभी-कभी हमें आवश्यकता होती है कि डेटाबेस में सभी तालिकाओं में कॉलम जोड़ें। आज हमें सभी तालिकाओं में CreatedOn कॉलम जोड़ना होगा यदि यह पहले से तालिका में मौजूद नहीं है।समाधान:
हम इस ऑपरेशन को करने के लिए कर्सर का उपयोग करेंगे।कृपया इन चरों के लिए कॉलम नाम और डेटा प्रकार प्रदान करें। नीचे दिए गए उदाहरण में मैं डेटटाइम डेटा प्रकार के साथ क्रिएटऑन कॉलम जोड़ रहा हूं।
SET @COLUMN_NAME='ColumnNameYouWantToAdd'
SET @COLUMN_DATATYPE='DataTypeOfColumn'
------------------------------------------ --कोड ------------------------------------------- ----
USE TESTDB GO
--Declare Variables
DECLARE @TableName VARCHAR(100)
DECLARE @TableSchema VARCHAR(100)
DECLARE @COLUMN_NAME VARCHAR(50)
SET @COLUMN_NAME='CreatedOn' -- Change Column Name according to your requirement
DECLARE @COLUMN_DATATYPE VARCHAR(50)
SET @COLUMN_DATATYPE='DateTime' -- Provide data type for column --Declare Cursor
DECLARE CUR CURSOR FOR SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' --OPEN CURSOR
OPEN CUR
--Fetch First Row
FETCH NEXT FROM CUR INTO @TableSchema,@TableName --Loopमें अगला फ़ेच करें
WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @SQL NVARCHAR(MAX) SET @SQL=NULL IF NOT EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=@TableName AND COLUMN_NAME=@COLUMN_NAME
and Table_Schema=@TableSchema) BEGIN SET @SQL='ALTER TABLE '+@TableSchema+'.'+@TableName +' ADD '+@COLUMN_NAME
+ ' '+@COLUMN_DATATYPE PRINT @SQL EXEC ( @SQL) END IF EXISTS ( SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=@TableName AND COLUMN_NAME=@COLUMN_NAME
and Table_Schema=@TableSchema) BEGIN PRINT 'Column Already exists in Table' END FETCH NEXT FROM CUR INTO @TableSchema,@TableName END --Close and Deallocate Cursor
CLOSE CUR
DEALLOCATE CUR
Video Demo: How to Add Column to all the Tables in SQL Server Database (Cursor Example)