sqlserver 常见语法

一:清除数据库日志文件【当数据库日志比较大的时候,可以使用下面语句清理日志文件】
USE [数据库名称]
GO
ALTER DATABASE 数据库名称  SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名称  SET RECOVERY SIMPLE --简单模式
GO
DBCC SHRINKFILE (N'数据库名称日志文件名' , 2, TRUNCATEONLY)    --2指的是保留的日志文件大小【可自定义设置】
GO
ALTER DATABASE 数据库名称  SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名称  SET RECOVERY FULL --还原为完全模式
GO

--查询指定数据库的日志文件名称  
USE [数据库名称]   
GO  
SELECT name FROM SYS.database_files WHERE type_desc='LOG' 
DBCC ShrinkFile('数据库名称',  0); /* 收缩数据库文件 */
DBCC ShrinkFile('日志名称',  0); /* 收缩日志文件 */
 
三:当数据流变为单用户,处理如下:
USE master;  
GO  
DECLARE @SQL VARCHAR(MAX);  
SET @SQL=''  
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)  
FROM master..sysprocesses  
WHERE dbid=DB_ID('数据库名称');  
​
EXEC(@SQL);
ALTER DATABASE 数据库名称 SET MULTI_USER;
 
四:随机查询表中10条数据
SELECT TOP 10 *
FROM dbo.Student 
ORDER BY NEWID()
 
五:分页(Row_Number())
SELECT *
FROM 
(
    SELECT ROW_NUMBER() OVER(ORDER BY TraceId) NO, *  --TraceId:表字段
    FROM dbo.MatTraces   --dbo.MatTraces:表名
) V
WHERE V.NO BETWEEN 31 AND 40
 
六:分页(OFFSET FETCH NEXT ONLY)=> 备注:sqlserver 2012之后版本支持
SELECT * from  dbo.MatTraces  ORDER BY TraceId  OFFSET 10 ROW  FETCH NEXT 10 ROW ONLY
 
七:插入记录并返回自增列(select @@IDENTITY)
insert into UnitClassify values('毫克',0.001) select @@IDENTITY

八:数据库sa账号密码修改
打开SSMS => 安全性 => 登录名 => sa => 属性 => 常规 => 修改密码
 
九:更改时间格式字段为类型的值
----备注:将年月日的日期格式时间转换为yyyyMMdd类型的int类型  例如:2021-3-13 00:00:00 =>  20210313
----sql函数参考地址:https://www.w3school.com.cn/sql/func_convert.asp
update OM_DayPlan set  ForDate_YMD =  (convert(VARCHAR(8),ForDate,112))
 
十:DateTime与DateTime2的区别
DateTime字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fff ,3个f,精确到1毫秒(ms),示例 2014-12-03 17:06:15.433 。
DateTime2字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fffffff ,7个f,精确到0.1微秒(μs),示例 2014-12-03 17:23:19.2880929 。
 
十一:连接字符串参数解析
 

posted @ 2021-11-20 22:00  ssnice  阅读(506)  评论(0编辑  收藏  举报