SQL Server常用语句——数据库层

查询所有数据库列表信息

EXEC sp_helpdb

查看各数据库恢复模式

SELECT 
    name AS [数据库名称], 
    recovery_model_desc AS [恢复模式],
    state_desc AS [状态],
    log_reuse_wait_desc AS [日志重用等待原因]
FROM sys.databases
ORDER BY name;

恢复模式意义及作用

🔍 结果解读与对你的意义

恢复模式 (recovery_model_desc)含义对“挽回错误更新”的影响
FULL (完整)记录所有事务日志,直到备份。最有希望恢复。只要日志文件 (.ldf) 没有被截断(即没有做过日志备份导致空间释放,或者日志文件还没满),你可以利用第三方工具或 fn_dblog 尝试回滚到出错前的时间点。
BULK_LOGGED (大容量日志)通常用于大批量操作,大部分操作仍记录日志。有机会恢复。类似于 FULL 模式,但在进行特定大容量操作(如 bulk insert)时日志记录较少。如果错误更新不是在大容量操作期间发生的,通常可以恢复。
SIMPLE (简单)事务日志在检查点自动截断,不保留历史日志链。很难通过日志恢复。一旦事务提交且检查点运行,日志就会被清空。如果没有最近的完整备份,数据几乎无法通过日志找回。

查看和修改SQL Server兼容性级别

-- 检查数据库兼容性级别
SELECT name, compatibility_level
FROM sys.databases
WHERE name = DB_NAME();
-- 如果低于130,尝试更改为130
ALTER DATABASE WF_WZGL SET COMPATIBILITY_LEVEL = 130;

查询获取最近创建的存储过程


-- type P:存储过程
-- N: 天数
SELECT name,sys.objects.create_date
FROM sys.objects
WHERE type='P'
AND DATEDIFF(D,sys.objects.create_date,GETDATE())< N

查询获取最近修改的存储过程


-- type P:存储过程
-- N: 天数
SELECT name,modify_date
FROM sys.objects
WHERE type='P'
AND DATEDIFF(D,modify_date,GETDATE())< N

查询获取硬盘的可用空间

EXEC master..xp_fixeddrives

查询获取数据库服务器名称

SELECT @@SERVERNAME AS 'Server_Name'

数据库版本查询

SELECT @@VERSION AS 'Version_Name'

删除数据库

正常语句

DROP DATABASE 数据库名称;

很多情况下无法正常删除,Sql server 使用drop database 语句,无法删除正在使用的数据库时可使用下方代码


--查询分析器中执行下面的语句就行了. 

use master 
go 

declare @dbname sysname 
set @dbname='数据库名称' --这个是要删除的数据库库名 

declare @s nvarchar(1000) 
declare tb cursor local for 
select s='kill '+cast(spid as varchar) 
from master..sysprocesses 
where dbid=db_id(@dbname) 

open tb 
fetch next from tb into @s 
while @@fetch_status=0 
begin 
exec(@s) 
fetch next from tb into @s 
end 
close tb 
deallocate tb 
exec('drop database ['+@dbname+']')

查询获取 SQL Server 的当前语言

SELECT @@LANGUAGE AS 'Current_Language'

相关文章

© 版权声明
THE END
喜欢就点赞吧
点赞14 分享