環境與版本
作業系統:Window10 64x 版本:20H2
資料庫產品版本:Microsoft SQL Server Developer (64-bit) v18.9.1
資料庫版本編號:15.0.2080.-
在處理大量資料庫的時候,有時候一支一支維運修改顯得過於緩慢,所以使用大量處理的範本,來快速進行修正。
產生大量 修改特定欄位名稱 的 執行語法範本
調整並設定二個地方
- 設定值
- 相關條件
詳細調整影響的已經寫在Code裡面了。
-- ============================================= -- Author: Steven玄 -- ALTER date: 20210126 -- Description: 產生大量修改Table 修改特定欄位名稱 的執行語法範本 -- ============================================= DECLARE @Old_File VARCHAR(25); DECLARE @New_File VARCHAR(25); ---設定值 SET @Old_File = 'Old_FILE_NAME' ; --更改前的欄位名 SET @New_File = 'New_FILE_NAME' ; --更改後的欄位名 -- 創暫存TABLE DECLARE @table_name_TABLE TABLE ( [rk] [int] NOT NULL, --順序 [Table_name] [nvarchar](50) NULL, --預存程序名稱 [schema_name] [nvarchar](10) NULL, --資料庫結構名稱 [type_desc] [nvarchar](50) NULL, --項目類別 [create_date] [DATETIME] NULL, --創建時間 [modify_date] [DATETIME] NULL --修改時間 ); -- 創暫存TABLE DECLARE @TEMP TABLE ( [CODE] [nvarchar](MAX) NULL --預存程序名稱 ); --下條件把要抓取的TABL放進去這個暫存taBLE INSERT INTO @table_name_TABLE --可先查看 SELECT dense_rank() over(order by [create_date],[modify_date],[object_id] asc) as [rk] ,[name] AS [Table_name] ,SCHEMA_NAME(schema_id) AS [schema_name] ,[type_desc] ,[create_date] ,[modify_date] FROM sys.tables --設定相關條件 where [name] like 'TABD' ; --資料表名稱 -- 表格的字串 DECLARE @MAX BIGINT; DECLARE @Min BIGINT; SELECT @MAX = MAX([rk]),@Min=MIN([rk]) FROM @table_name_TABLE DECLARE @Table_name nvarchar(100) --預存程序名稱 WHILE(@Min <= @MAX) BEGIN SELECT @Table_name = [Table_name] FROM @table_name_TABLE WHERE [rk] = @Min INSERT INTO @TEMP SELECT 'exec sp_rename ''['+@Table_name+'].'+@Old_FILE+''' , '''+@New_File+''''; SET @Min=@Min+1 END SELECT * FROM @TEMP; --回傳可使用字串