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

留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

DDD With MVC