SQL Server的日常管理工作中,通过T-SQL命令可以完成绝大多数核心操作,相比图形化界面操作,命令方式更高效且适合批量处理场景。本文整理了不同场景下的常用管理命令,附带实际使用示例,方便用户直接参考使用。

数据库相关管理命令
创建数据库
使用CREATE DATABASE命令可以创建新的数据库,基础语法如下:
-- 创建名为TestDB的数据库,指定主数据文件和日志文件的基础配置
CREATE DATABASE TestDB
ON PRIMARY
(
NAME = TestDB_Data,
FILENAME = 'D:SQLDataTestDB.mdf',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
LOG ON
(
NAME = TestDB_Log,
FILENAME = 'D:SQLDataTestDB.ldf',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 2MB
);
查看所有数据库信息
可以通过系统存储过程或者系统视图查询当前实例下的所有数据库信息:
-- 方式1:使用系统存储过程
EXEC sp_databases;
-- 方式2:查询系统视图获取更详细的信息
SELECT name AS 数据库名称,
database_id AS 数据库ID,
create_date AS 创建时间,
state_desc AS 状态
FROM sys.databases;
删除数据库
删除数据库需要谨慎操作,执行前建议确认数据库无业务使用:
-- 删除名为TestDB的数据库 DROP DATABASE TestDB;
用户与权限管理命令
创建登录账户
登录账户是连接SQL Server实例的凭证,使用CREATE LOGIN命令创建:
-- 创建SQL Server身份验证的登录账户,密码为Test@123456 CREATE LOGIN test_login WITH PASSWORD = 'Test@123456'; -- 创建Windows身份验证的登录账户,映射本地Windows用户 CREATE LOGIN [DESKTOP-ABCtest_user] FROM WINDOWS;
创建数据库用户并授权
登录账户需要映射到具体数据库的用户才能访问该数据库的数据,同时可以分配对应权限:
-- 切换到目标数据库 USE TestDB; GO -- 为登录账户test_login创建对应的数据库用户 CREATE USER test_user FOR LOGIN test_login; -- 给用户分配db_owner角色,拥有该数据库的所有权限 ALTER ROLE db_owner ADD MEMBER test_user; -- 也可以单独授予查询权限 GRANT SELECT ON SCHEMA::dbo TO test_user;
数据备份与恢复命令
完整备份数据库
完整备份是数据库备份的基础,会备份整个数据库的所有数据:
-- 对TestDB数据库执行完整备份,备份文件保存到指定路径
BACKUP DATABASE TestDB
TO DISK = 'D:SQLBackupTestDB_Full_202405.bak'
WITH FORMAT, -- 覆盖现有备份集
NAME = 'TestDB完整备份',
STATS = 10; -- 每完成10%输出一次进度
恢复数据库
使用备份文件恢复数据库时,需要先确保目标数据库处于单用户模式或者不存在:
-- 恢复TestDB数据库,替换现有数据库
RESTORE DATABASE TestDB
FROM DISK = 'D:SQLBackupTestDB_Full_202405.bak'
WITH REPLACE, -- 替换现有数据库
RECOVERY, -- 恢复完成后可正常使用
STATS = 10;
性能查询相关命令
查询当前正在执行的请求
当数据库出现性能问题时,可以先查询当前正在执行的请求,定位阻塞或者耗时长的语句:
SELECT session_id AS 会话ID,
start_time AS 开始时间,
status AS 状态,
command AS 命令类型,
wait_type AS 等待类型,
wait_time AS 等待时间,
text AS 执行的SQL语句
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle);
查询数据库文件使用情况
可以查询数据文件和日志文件的使用率,提前规划存储空间:
SELECT name AS 文件名称,
physical_name AS 物理路径,
size * 8 / 1024 AS 总大小MB,
FILEPROPERTY(name, 'SpaceUsed') * 8 / 1024 AS 已使用大小MB,
(size * 8 / 1024 - FILEPROPERTY(name, 'SpaceUsed') * 8 / 1024) AS 剩余大小MB
FROM sys.database_files;
注意事项
- 执行删除、修改权限等高危命令前,一定要确认操作的影响范围,避免误操作导致数据丢失。
- 备份命令的路径需要确保SQL Server服务账户有读写权限,否则会执行失败。
- 生产环境执行性能查询命令时,尽量避开业务高峰期,避免对正常业务造成影响。
- 所有命令执行前建议先在测试环境验证,确认符合预期后再应用到生产环境。
SQL_Server管理命令数据库管理T-SQL修改时间:2026-07-08 20:15:14