[转]合并数据库文件(文件组)
一个数据库EmployeeManagement中有一个主要数据库文件EmployeeManagement.mdf和两个次要数据库文件rt.ndf、YU.ndf,还有一个事务日志文件EmployeeManagement_log.ldf。 如图1: 现在想把 rt.ndf、YU.ndf里面的数据合并到EmployeeManagement.mdf。 这里使用的
一个数据库EmployeeManagement中有一个主要数据库文件EmployeeManagement.mdf和两个次要数据库文件rt.ndf、YU.ndf,还有一个事务日志文件EmployeeManagement_log.ldf。如图1:
现在想把 rt.ndf、YU.ndf里面的数据合并到EmployeeManagement.mdf。
这里使用的是收缩数据库文件的方法达到合并数据库文件的目的。
收缩数据库文件命令:
DBCC SHRINKFILE ( { 'file_name' | file_id } { [ , EMPTYFILE ] | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ] } ) [ WITH NO_INFOMSGS ]这里提供一个参数EMPTYFILE 的说明:
EMPTYFILE将指定文件中的所有数据迁移到同一文件组中的其他文件。SQL Server 2005 Database Engine 不允许将数据放在用于 EMPTYFILE 选项的文件上。该选项允许使用 ALTER DATABASE 删除文件。
意思是说先执行收缩命令:Dbcc Shrinkfile(文件名,Emptyfile)
再执行删除数据库文件命令:Alter Database 数据库名 Remove File 文件名
下面我们做一个测试:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->Use EmployeeManagement
Go
Set Nocount
On
Declare
@DBFile1nvarchar(512),
@DBFile2nvarchar(512),
@Sql
nvarchar(4000)
Set@DBFile1='RT'
Set@DBFile2='YU'
IfNotExists(Select1From sys.sysfiles
Where name=@DBFile1)
Begin
Set
@Sql=@DBFile1+ N' 数据库文件不存在或已删除!'
Raiserror50001@sql
Goto ExitFlag
End
IfNotExists(Select1From sys.sysfiles
Where name=@DBFile2)
Begin
Set
@Sql=@DBFile2+ N' 数据库文件不存在或已删除!'
Raiserror50001@sql
Goto ExitFlag
End
Ifobject_id('tempdb..#')
IsNotNull
Drop
Table #
Create
Table #(Rows
int)
Set@sql=Null
Select
@sql=Isnull(@sql+Char(13)+Char(10),'')+'Insert
Into # Select Count(*) From '+Quotename(name)
From sys.objects
Where type='U'
If@sql>''Exec(@sql)
Select
Sum(Rows) As[合并数据库文件前的所有表记录数]From #
Dbcc Shrinkfile(@DBFile1,Emptyfile)
With No_Infomsgs
Exec(N'Alter Database EmployeeManagement Remove File
'+@DBFile1)
Dbcc Shrinkfile(@DBFile2,Emptyfile)
With No_Infomsgs
Exec(N'Alter Database EmployeeManagement Remove File
'+@DBFile2)
Truncate
Table #
Set@sql=Null
Select
@sql=Isnull(@sql+Char(13)+Char(10),'')+'Insert
Into # Select Count(*) From '+Quotename(name)
From sys.objects
Where type='U'
If@sql>''Exec(@sql)
Select
Sum(Rows) As[合并数据库文件后的所有表记录数]From #
ExitFlag:
执行后如图:
执行ok,通过统计数据库中的表总记录数是否一致,来达到检查在数据库文件变动前后表数据是否丢失。
统计表记录数,只是简单的检查方法;还可以通过备份还原与它相同的另一个数据库作比较,看数据是否一致。
测试好后,我们可以看到rt.ndf、YU.ndf文件已经给删除
http://www.cnblogs.com/wghao/archive/2009/05/15/1457192.html

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

Go語言中使用os.Rename函數重新命名文件,語法為:funcRename(oldpath,newpathstring)error。此函數將oldpath指定的檔案重新命名為newpath指定的檔案。範例包括簡單重命名、移動檔案到不同目錄以及忽略錯誤處理。 Rename函數執行原子操作,在兩個檔案位於同一目錄時可能僅更新目錄項,跨磁碟區或正在使用的檔案重新命名可能會失敗。

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。
