İçeriğe geç

MSSQL Tüm Tablolarda Dönmek

Aşağıdaki kodu kullanarak ilgili veri tabanındaki tüm tablolarda dönebilirsiniz. Belirttiğim alanda da istediğiniz kodu yazarak işlem yapabilirsiniz.

DECLARE @Table TABLE
(
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nchar](100) NULL
)

INSERT INTO @Table([Name])
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME

DECLARE @row_id INT = 1

WHILE (@row_id <= (SELECT COUNT(1) FROM @Table))
BEGIN

	--BU ARADA YAPACAĞINIZ İŞLEMLERİ YAZABİLİRSİNİZ...

	SET @row_id = @row_id + 1

END

Aşağıdaki şekilde bir örnekle de yapılabilecekleri örnekleyelim;

DECLARE @Table TABLE
(
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nchar](100) NULL
)

INSERT INTO @Table([Name])
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME

DECLARE @row_id INT = 1

WHILE (@row_id <= (SELECT COUNT(1) FROM @Table))
BEGIN

	SELECT * FROM @Table WHERE Id = @row_id

	DECLARE @TableName NVARCHAR(50)
	SELECT @TableName = Name FROM @Table WHERE Id = @row_id

	DECLARE @com_1 NVARCHAR(250) = 'ALTER TABLE ' + @TableName + ' ADD InsertUserId INT';
	DECLARE @com_2 NVARCHAR(250) = 'ALTER TABLE ' + @TableName + ' ADD UpdateUserId INT';
	DECLARE @com_3 NVARCHAR(250) = 'ALTER TABLE ' + @TableName + ' ADD UpdateDate INT';

	EXEC sp_executesql @com_1
	EXEC sp_executesql @com_2
	EXEC sp_executesql @com_3

	SET @row_id = @row_id + 1

END

Gördüğünüz gibi her tablo için “InsertUserId”, “UpdateUserId” ve “UpdateDate” alanlarını ekliyoruz…

5 4 votes
Article Rating
Tarih:MSSQL Server
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x