常用操作腳本彙整
1. 查詢邏輯檔名
-- 資料檔(通常 file_id = 1)
USE [資料庫名];
SELECT FILE_NAME(1) AS DataLogicalName;
-- 記錄檔(通常 file_id = 2)
USE [資料庫名];
SELECT FILE_NAME(2) AS LogLogicalName;
2. 附加資料庫
EXEC sp_attach_db
@dbname = N'資料庫名',
@filename1 = N'資料庫完整路徑.mdf',
@filename2 = N'記錄檔完整路徑.ldf';
GO
3. 建立登入並指定預設資料庫
EXEC sp_addlogin @loginame = N'登入名', @passwd = N'密碼', @defdb = N'資料庫名';
GO
4. 修復孤立使用者
-- 將登入與資料庫使用者對應
EXEC sp_change_users_login 'update_one', '登入名', '登入名';
GO
5. 修改邏輯檔名
-- 修改資料檔邏輯名稱
ALTER DATABASE [資料庫名]
MODIFY FILE (NAME = N'舊資料邏輯名', NEWNAME = N'新資料邏輯名');
GO
-- 修改記錄檔邏輯名稱
ALTER DATABASE [資料庫名]
MODIFY FILE (NAME = N'舊記錄邏輯名', NEWNAME = N'新記錄邏輯名');
GO
6. 其他實用指令
-- 變更資料庫擁有者
EXEC sp_changedbowner 'new_owner';
GO
-- 移除登入
EXEC sp_droplogin '登入名';
GO
-- 授與資料庫存取權限
EXEC sp_adduser @loginame = '登入名', @name_in_db = '使用者名', @grpname = 'db_owner';
GO
說明
sp_attach_db 在 SQL Server 2005+ 建議改用 CREATE DATABASE ... FOR ATTACH。
sp_addlogin、sp_change_users_login 為舊版相容程序,新版建議使用 CREATE LOGIN、ALTER USER ... WITH LOGIN。
- 修改邏輯檔名需資料庫處於線上狀態,且無其他作用中交易。