存儲過程改名
第一:表名稱作為傳遞參數,直接在儲存存儲過程中進行好像不行。
第二:列名稱也作為參數,使用動態SQL的時候怎麼得到返回的結果。
第二:使用動態SQL的時候,傳遞值不能直接放在StringInfo中直接使用EXECUTE IMMEDIATE StringInfo。這樣會報錯的,非常坑。需要使用<=:1 這樣的參數替換機制,然後使用 using xxxvalue1,xxxvalue2;
第四:批量刪除。
❷ 怎樣在mysql裡面修改資料庫名稱
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對資料庫改名,可能由於實現的功能不完備(比如,這條命令可能是一個超大的事務,或者是由於之前的表很多還是 MyISAM 等),後來的版本直接取消了這條命令。更改資料庫名大致上有以下幾種方案:
一、mysqlmp 導入導出要說最簡單的方法,就是直接用 mysqlmp 工具,在舊庫導出再往新庫導入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導出(包含的對象:表、視圖、觸發器、事件、存儲過程、存儲函數)
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那麼順滑,不能一步到位。比如,要把資料庫 yttdb_old 改名為 yttdb_new,如果資料庫 yttdb_old 里只有磁碟表,那很簡單,直接改名即可。或者寫個腳本來批量改,非常簡單。但是一般舊庫里不只有磁碟表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導出來,完了在逐一改完表名後導進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設 MySQL 部署好了後,所有的 binlog 都有備份,並且二進制日誌格式還是 statement 的話,那就可以簡單搭建一台從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉升從機為主機即可。這里只需要從機配置一個參數來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old->yttdb_new不過這種局限性很大,不具備標准化,不推薦。
總結其實針對 MySQL 本身改庫名,大致就這么幾種方法:
如果數據量小,推薦第一種;
數據量大,則推薦第二種;
數據量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日誌或其他的方式來把舊庫數據直接讀取到新庫達到改名的目的等等。
❸ sqlserver 如何修改存儲過程的名字
rename [存儲過程名字] ,newname
不過建議你最好還是重建一個,因為重命名 視圖或存儲過程,要清空緩存,然後再重新編譯一下。還不如 直接 再創建一個呢。
❹ 資料庫存儲過程改名
參考語法
sp_rename [ @objname = ] 'object_name' ,
[ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
參數
[@objname =] 'object_name'
是用戶對象(表、視圖、列、存儲過程、觸發器、默認值、資料庫、對象或規則)或數據類型的當前名稱。如果要重命名的對象是表中的一列,那麼 object_name 必須為 table.column 形式。如果要重命名的是索引,那麼 object_name 必須為 table.index 形式。object_name 為 nvarchar(776) 類型,無默認值。
[@newname =] 'new_name'
是指定對象的新雹消名稱。new_name 必須是名稱的一部分,並且要遵循標識滾喚符的規則。newname 是 sysname 類型,無默認值。
[@objtype =] 'object_type'
是要重命名的對象的類型。object_type 為 varchar(13) 類型,其默認值為源備知 NULL,可取下列值。
❺ 存儲過程的改名問題
不要改擴展名。如要把「ynjkifg.doc」更名為中文名謹敏,只要改「.doc」前面的搜衡,後面的擴展名是不能改的。可世晌做改成「中國.doc」,不能直接改成「中國」。
❻ sqlserver 如何修改存儲過程的名字
rename
[存儲過程名字]
,newname
不過建議你好態模最友緩好還是重建一個,因為重命名
視圖或存儲過程,要清空緩存,然後閉蠢再重新編譯一下。還不如
直接
再創建一個呢。
❼ oracle存儲過程怎樣重命名,除了用or replace 還有啥
create or replace 不是用來重命名的,是用來建立或替換同一名稱存儲過程。
重命名先可以復制舊的代碼,建立新的存儲過程再把舊的drop掉
❽ 如何導出DB資料庫的數據
一、導出導入SQL Server里某個資料庫
1.在SQL Server企業管理器里選中要轉移的資料庫,按滑鼠右鍵,選所有任務->備份資料庫。
2.備份 選資料庫-完全,
目的 備份到 按添加按鈕
文件名在SQL Server伺服器硬碟下輸入一個自定義的備份資料庫文件名(後綴一般是bak)
重寫 選重寫現有媒體
最後按確定按鈕。
如果生成的備份資料庫文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。
3.通過FTP或者remote desktop或者pcanywhere等方法
把第二步生成的備份資料庫文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。
4.目的SQL Server資料庫如果還沒有此資料庫,先創建一個新的資料庫;
然後選中這個新創建的資料庫,按滑鼠右鍵,選所有任務->還原資料庫
還原->從設備->選擇設備->磁碟->添加(找到要導入的備份資料庫文件名)->確定
還原備份集->資料庫-完全
最後按確定按鈕。完全的資料庫導入成功了。
(如果在已經存在的SQL Server資料庫上還原資料庫可能遇到有還有其它人正在使用它而恢復操做失敗,
可以去看 ->管理->當前活動->鎖/對象->找到資料庫下鎖的進程號->到查詢分析器里用kill 進程號殺掉這些鎖,然後再做還原)
注意:如果在原有的目的SQL Server資料庫上從備份文件(*.bak)還原資料庫會把已經存在的表、存儲過程等資料庫對象全部替換成最近這次導入的備份資料庫里的內容。
如果一定要還原備份文件(*.bak)里部分數據,需要另外建一個新資料庫,其邏輯名稱和數量同備份文件(*.bak)里資料庫的邏輯名稱和數量一致;
新資料庫的物理文件名稱取得一定要和備份文件(*.bak)里資料庫的物理文件不一樣才行。
二、導出導入SQL Server里某個表
1.沒有防火牆,同一個區域網里或不在同一個區域網里,但通過Internet可以互相訪問
在SQL Server企業管理器里選中目的資料庫 ,按滑鼠右鍵,選所有任務->導入數據-> 彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)->選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)->伺服器(默認為上一步里選中的導出伺服器,也可以選其它區域網內能訪問到的所有SQL Server伺服器,或者直接輸入IP地址)->目的資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步->選擇源表和視圖->在要導入的表和視圖前面選中源->目的出現同樣的表名(可以手工修改成別的表名)->轉換->列映射和轉換裡面可以修改源表和目的表之間欄位的對應關系,修改目的表欄位的類型和長度等,並可以選擇創建目的表,在目的表中增加行,除去並重新創建目的表,啟用標志插入等選項->確定->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出導入數據,選調度DTS包以便以後執行)->保存(可以不選)->[ 保存DTS包(如果以後還要轉移這批相同的數據,可以把本次導出導入的內容和步驟保存起來,存到SQL Server即可,保存的時候要輸入DTS的包名及詳細描述)->下一步-> ]->完成
正在執行包->圖形界面顯示創建表及插入記錄的步驟和狀態->完成
2.經過防火牆,不在同一個區域網里
①、導出表裡的數據到文本文件:
在SQL Server企業管理器里選中目的資料庫,按滑鼠右鍵,選所有任務-> 導入數據->彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇區域網內能訪問到的所有SQL Server伺服器)->選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇目的->目的(文本文件)-> 文件名(在自己的電腦硬碟中生成一個自定義的文本文件) ->下一步->制定表復制或查詢->選從源資料庫復製表和視圖(也可以選擇用一條查詢指定要傳輸的數據)->下一步->選擇目的文件格式->源(選擇要導出的表)->用默認的帶分隔符->選第一行包含有列名稱選項->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動導出到文本文件,選調度DTS包以便以後執行)->保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成
正在執行包->圖形界面顯示表到文本文件的步驟和狀態->完成
如果生成的文本文件大於1M,要用壓縮工具壓縮後再到Internet上傳輸。
②、通過FTP或者remote desktop或者pcanywhere等方法把
第①步生成的文本文件或者其壓縮後的文件傳到目的SQL Server資料庫,如果有壓縮要解壓。
③、把文本文件導入目的SQL Server資料庫
直接把文本文件導入目的SQL Server資料庫里跟文本文件同名的新表名時,默認的會把所有欄位類型都變成字元串。
所以我們要這樣做:
在源SQL Server資料庫上先生成創建表的sql語句
在SQL Server查詢分析器里->選中源資料庫里表名->按右鍵->在新窗口中編寫對象腳本->創建->復制下新窗口內創建表名的sql語句到目標SQL Server資料庫上查詢分析器里執行創建表名的sql語句,生成空表結構。(如果已經存在這樣的表名,修改建表的sql語句,在表名後面加上導入時間的年月信息,例如table_0113)
調用導入/導出工具->彈出數據轉換服務導入/導出向導窗口->下一步->選數據源-> 數據源(文本文件)->文件名(已傳到目的SQL Server資料庫下要導入的文本文件,後綴可以不是*.txt,但是常規文本編輯器能打開的文件,文件類型選全部)->下一步->選擇文件格式->用默認的帶分隔符->選第一行包含有列名稱選項->下一步->制定列分割符->逗號->下一步->選擇目的->目的(用於SQL Server的Microfost OLE DB提供程序)->伺服器(可選擇目標區域網內能訪問到的所有SQL Server伺服器)-> 選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入資料庫的用戶名和密碼)->資料庫(可選擇上面選中SQL Server伺服器上所有許可權范圍內的資料庫)->下一步->選擇源表和視圖->修改目的表名為剛才創建的表名->轉換(在目的表中追加行) ->下一步->保存、調度和復制包->時間->立即運行(如果要實現隔一段時間自動把文本文件導入,選調度DTS包以便以後執行)->保存(可以不選)-> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)->下一步->]->完成
正在執行包->圖形界面顯示文本文件到表的步驟和狀態->完成
如果要更改導入時間的年月信息的表名,例如table_0113到原來的表名,在企業管理器里把原來的表名改成table_old_0113,table_0113改名成table。這會對應用程序里頻繁訪問的表照成一定的中斷。
注意:源表上的建的索引和主鍵約束不能用上面介紹的1和2方法轉移過來,還需要手工來建索引和主鍵。
標志種子和not null的約束可以繼承過來。
導入視圖時會把源視圖里所有的真實數據導入成一個新表,而不是視圖。
三、SQL Server存儲過程或用戶定義的函數導出導入
1、導出存儲過程或用戶定義的函數成*.sql文件
在SQL Server企業管理器里選中源資料庫,存儲過程->單選或者多選中要轉移的存儲過程->用戶定義的函數->單選或者多選中要轉移的函數->按滑鼠右鍵,選所有任務->生成SQL腳本->確定->在自己的電腦硬碟中生成一個自定義的*.sql文件->保存->正在生成SQL腳本->成功
2、如果目的資料庫經過防火牆,不在同一個區域網里,要通過FTP或者remote desktop或者pcanywhere等方法把第1步生成的*.sql文件傳到目的SQL Server資料庫伺服器上。
3、用查詢分析器進入SQL Server目的資料庫,從菜單里選文件->打開->打開查詢文件->選中第1步生成的*.sql文件->點執行查詢的綠色倒三角型快捷鍵->查詢窗口裡會出現執行後的消息(有時候可能因為存儲過程和用戶定義的函數之間有一定的依賴關系,會報一些錯。
最好先執行用戶定義的函數的*.sql文件,再執行存儲過程的*.sql文件)
四、ORACLE資料庫里表導入SQL Server資料庫
1、在目的SQL Server資料庫伺服器上安裝ORACLE Client軟體或者ORACLE ODBC Driver. 在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE資料庫的別名(service name)。
具體配置方法可以參考本站文章:客戶端連伺服器的注意事項
2、在WIN2000或者win2003伺服器->管理工具->數據源(ODBC)->系統DSN(本機器上NT域用戶都可以用)->添加->ORACLE ODBC Driver->完成->data source name 可以自定義,我一般填ORACLE資料庫的sid標志,description里可以填ORACLE資料庫詳細描述,也可以不填->data source service name 填第1步定義的ORACLE資料庫別名->OK。
(用戶DSN和文件DSN也可以類似配置,但使用的時候有一些限制)
3、SQL Server的導入和導出數據工具里->選數據源-> 數據源(其它(ODBC數據源))->選第2步在ODBC里定義的系統DSN source name,用戶名密碼處填寫ORACLE系統的用戶名和密碼->下一步->選擇目的,選SQL Server資料庫(跟上面第二點講的一致,就不重復了)。
注意:在ORACLE表和SQL Server表之間'轉換'那步很重要,可以改變默認的欄位數據類型,如image->text,decimal->int
五、SQL Server資料庫里表導入ORACLE資料庫
方法一.導出目的選通過ODBC數據源里定義的ORACLE資料庫, 注意ORACLE里表名都是大寫的.我一般在ORACLE這邊先生成好表結構,再選擇SQL SERVER源表往ORACLE目的表裡追加數據.數據傳輸速度比方法二慢.
方法二.從SQL Server資料庫導入數據到ORACLE資料庫可以選擇用Windows下ORACLE9i企業或者個人版資料庫做中轉。