SQL 跑迴圈為資料庫每個Table加欄位和描述
工作上得到一個需求,需求的目的是為資料庫每個Table加欄位和描述
查到如何跑迴圈為資料庫每個Table加欄位和描述
--使用 SQL 走訪目標DB全Table 進行動作
--宣告承接資料的變數
Declare @name nvarchar(100)
--宣告指標走訪資料庫的Table名稱
Declare myCursor cursor for select [name] from sys.tables Where [type]='U'
open myCursor
--走訪 取myCursor 第一個值
fetch next from myCursor into @name
while(@@FETCH_STATUS=0)
Begin
--如果沒有InsertDatetime資料行...
if not exists(select * from sys.columns
where Name = N'InsertDatetime' and Object_ID = Object_ID(@name))
begin
--就建立
Exec ('ALTER TABLE ' + @name + ' ADD InsertDatetime Datetime NOT NULL DEFAULT Getdate() ')
--為資料行加入擴充屬性
EXEC sys.sp_addextendedproperty
@name=N'MS_Description', @value=N'資料新增時間' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE',
@level1name=@name, @level2type=N'COLUMN', @level2name=N'InsertDatetime'
end
--走訪 取myCursor 第下一個值
fetch next from myCursor into @name
End
close myCursor
--移除資料指標參考
deallocate myCursor
展開目標Table > 雙擊目標資料行 > 擴充屬性
參考
https://learn.microsoft.com/zh-tw/sql/t-sql/language-elements/fetch-transact-sql?view=sql-server-ver16
https://dotblogs.com.tw/shadow/2014/05/01/144931
留言
張貼留言