1. 程式人生 > >如何同時更新資料庫中所有表的相同欄位

如何同時更新資料庫中所有表的相同欄位


            之前在做專案的過程中,有時候需要重置一下資料庫中所有表中都存在的一些相同欄位,如果表少的話還可以手動更新一下,一旦表的數量過多就會變得麻煩,因此自己寫了一個適用於Oracle資料庫的SQL指令碼,可以先迴圈遍歷出資料庫中的所有表,然後拿著表名迴圈,進行動態SQL的執行。


            我這裡需要進行的操作是將所有表中,列名為CREATED_BY,CREATED_DATE,LAST_MODIFIED_BY,LAST_MODIFIED_BY的列更新為null,程式碼和執行結果如下。

DECLARE sqlS VARCHAR (32760) ;
BEGIN
FOR table_name IN ( SELECT table_name FROM user_tab_columns WHERE column_name = 'CREATED_BY' ) loop sqlS := ( 'UPDATE ' || table_name.TABLE_NAME || ' SET CREATED_BY = NULL, CREATED_DATE = NULL, LAST_MODIFIED_BY = NULL, LAST_MODIFIED_DATE = NULL'
) ;
EXECUTE IMMEDIATE sqlS ; dbms_output.put_line (sqlS) ; END loop ; dbms_output.put_line ('更新結束!') ; END ;

執行結果如下:


實際執行效果圖

相關推薦

如何同時更新資料庫所有相同

            之前在做專案的過程中,有時候需要重置一下資料庫中所有表中都存在的一些相同欄位,如果表少的話還可以手動更新一下,一旦表的數量過多就會變得麻煩,因此自己寫了一個適用於Oracle

python讀取xml資料庫中表內所有資料,獲取資料庫所有名稱

工作中需要讀取指定xml資料庫中的資料以及 表所需欄位名,所以在已有例子中改進實現: xml 資料庫 xmldabase.xml: <database> <manifest> <pair key="schema_major_vsn" v

資料庫多個相同的統一更新(儲存過程)

開發中遇到多個表要設定區域REGIONCODE這個欄位的更新,所以寫了這個儲存過程統一處理CREATE PROCEDURE [dbo].[Sp_RegionCode_SD_value] AS DECLARE @tableName VARCHAR(100)

查詢資料庫名和型別

mysql: 1. 查詢資料庫中的所有表:show tables; 2. 查詢表中的欄位名和欄位型別: show columns from table_name(表名);                 &n

[MySQL] INFORMATION_SCHEMA 資料庫包含所有

sql注入後可以通過該資料庫獲取所有表的欄位資訊 1. COLLATIONS表 提供有關每個字符集的排序規則的資訊。 COLLATIONS表包含以下列: COLLATION_NAME 排序規則名稱。 CHARACTER_SET_NAME 與排序規則關聯的字符集的名稱。 ID 排序規則I

列出MSSQL資料庫內容

CREATE PROCEDURE [dbo].[List_Field] ASSELECT       表名=d.name, --case   when   a.colorder=1   then   d.name   else   ''   end,     欄位序號=a.c

mysql更新資料庫所有相同的某個的值

1. 檢視所有的資料表 -- 檢視所有資料表; SHOW TABLES; 2. 檢視某個資料表的所有的欄位 -- 查看錶tb_watch_back的所有欄位 DESCRIBE tb_w

oracle檢視所有註釋、註釋

oracle中檢視所有表、欄位、表註釋、欄位註釋 檢視所有表 select table_name from user_tables; //檢視當前使用者擁有的表 select table_name from all_tables; //檢視所有使用者

刪除mysql資料庫所有

刪除表的命令 drop table 表名; 如果有200張表,執行200次,想想就不想動手了。 下面提供一個使用information_schema庫的方案: SELECT CONCAT('drop table ',table_name,';') FROM informati

ORACLE——在所有查詢某個字串並輸出名和

什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from

mysql為使用者設定資料庫,資料(列)的訪問許可權

1、mysql中對指定使用者,授予某些資料庫,資料表或者欄位訪問許可權 語法: GRANT PRIVILEGES ON DATA.TABLE TO USERS; 溫馨提示: 授權後可以使用2中命令進行使用者許可權許可權,也可以直接重啟mysql程序方式進行許可權重新整理。 A

MFC獲取SqlServer資料庫所有名、記錄資料

程式碼如下過程其實不是每一步都有,但是主要功能都在! //1、連線資料庫類 BOOL CSqlDlg::Ado(CString strConn) { ::CoInitialize(NULL); // 初始化OLE/COM庫環境 try { m_pConn.CreateInstan

【Oracle】Oracle查詢資料庫所有的記錄數

方法一: 首先建立一個計算函式 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g

SQL查詢資料庫所有、表字段名及資料型別

select b.name,a.colid,a.name,(select systypes.name+'('+cast(a.length/2  as varchar(10))+')' from syst

mysql 檢視資料庫所有的記錄數

mysql使用select count(*) from table_name可以查詢某個表的總記錄數。想快速的知道資料庫中所有表的記錄數資訊怎麼辦?如果使用mysql的版本在5.0及以上,可以通過查詢information_schema庫中的tables表來獲取,該表中使

sql查詢資料庫所有

查詢資料庫裡所有表名和欄位名的語句 SQL 查詢所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_S

SQL Server資料庫查詢含有某個及該記錄條數

SELECT object_name(sc.id) as TableName, sc.Name as ColumnName, si.rows as RowCounts FROM SysColumns sc LEFT JOIN SysObjects so ON sc.id =

oracle 查詢資料庫所有名及查詢某一個所有列名

1.查詢當前資料庫中所有表名及表的備註:         1) select  * from user_tab_comments;----查詢所有表         2)select  *  from user_tab_comments  where Table_Name=

Oracle檢視所有

https://www.cnblogs.com/emanlee/archive/2011/12/02/2272629.html 獲取表字段: select *  from user_tab_columns  where Table_Name='使用者表'  order by column_name 獲取表註

ORACLE 獲取資料庫所有

   Class.forName(driverClassName);    // 建立連線    Connection con = DriverManager.getConnection(url,userName,password);    // 建立狀態    Statement stmt = con.cr