随笔分类 - SQL SERVER
微软的数据库
摘要:进入容器: sudo docker exec -it mssqlserver "bash" 进入 sqlcmd 命令行: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>" 如果成功,应会显示 sq
阅读全文
摘要:排除错误外,基本就是查询语句确实消耗了过多的资源 这次遇到这个错误是因为在 where 语句中 in 了过多的数据(大概 10000+) 需要调整一下查询逻辑了 根据不同的业务逻辑可能有不同的调整方式,这里介绍一个用了感觉还比较有效的方法 就是在查询过程中将需要 in 查询的所有数据插入临时表,然后
阅读全文
摘要:1、判断表中是否有指定数据,如果不存在则添加(INSERT INTO): INSERT INTO TableName (Column1, Column2, Column3, Column4, Column5) SELECT Value1, Value2, Value3, Value4, Value5
阅读全文
摘要:SQL里面有个DATEADD的函数。时间戳就是一个从1970-01-01 08:00:00到时间的相隔的秒数。所以只要把这个时间戳加上1970-01-01 08:00:00这个时间就可以得到你想要的时间了select DATEADD(second,1268738429 + 8 * 60 * 60,'1970-01-01 00:00:00') 注解:北京时间与GMT时间关系 1.GMT是中央...
阅读全文
摘要:转自:https://www.cnblogs.com/haibing0107/p/10836045.html https://bbs.51cto.com/thread-1023360-1.html 根本的解决办法应该是根据日志增长速度分配好足够的磁盘空间,或者通过检查修改控制一下日志的增长速度。 比
阅读全文
摘要:转自:https://blog.51cto.com/liuxinya/354983 作为DBA我们经常需要对不同的数据库执行相同的查询,如果你的服务器上只有2个数据库当然可以手工依次执行,但如果一个数据库服务器上有几百个库呢,你是否觉得会崩溃呢。 解决方法: 1、使用维护计划创建一个维护任务,创建完成之后马上执行,执行完毕后禁用。这个办法用鼠标点点点就行了。但是 Express 版本的数据库是没有...
阅读全文
摘要:-- 查询数据库锁情况 SELECT request_session_id [会话ID], DB_NAME(resource_database_id) [数据库名], OBJECT_NAME(resource_associated_entity_id) [表名] FROM sys.dm_tran_locks WHERE resource_type = 'OBJECT' -- 查询指定数...
阅读全文
摘要:1、查看连接到‘TestDB2’数据库的连接 select * from master.dbo.sysprocesses where dbid = DB_ID('TestDB2') *查询某个数据库用户的连接情况 sp_who 'sa' 2、查看数据库允许的最大连接 select @@MAX_CONNECTIONS 3、查看数据库自上次启动以来的连接次数 SELECT @@CONNECTION...
阅读全文
摘要:-- 备份产生模板库 BACKUP DATABASE userdb_template TO DISK = '/var/opt/mssql/backup/userdb_template_20200901.bak'; GO -- 从模板库新建数据库 RESTORE DATABASE userdb_001 FROM DISK = '/var/opt/mssql/backup/userdb_templa...
阅读全文
摘要:可能为了保证数据库运行稳定,sqlserver 限制了运行机器的最小内存,网上有相关的文章提到可以修改此限制,但是也要根据实际情况来决定是否真的要在小内存服务器中跑哦~ 参考:https://blog.csdn.net/weixin_42183854/article/details/105173806 https://www.cnblogs.com/johnwii/p/8525490.html h...
阅读全文
摘要:检查当前的标识自增值: DBCC CHECKIDENT('[表名]', NORESEED) 设置新的标识自增值(最后一个参数是新的自增起始值):DBCC CHECKIDENT('[表名]', RESEED, 1)
阅读全文
摘要:注意!类似于 Windows 系统,在 Linux 下运行 SQL Server 也有最低内核版本限制 应该最低需要 3.X 以上版本的系统,目前在 CentOS 7(内核版本 3.10)、8 两个版本系统中测试过没问题,但 Red Hat 6.5(内核版本 2.6) 是不可以的 很简单,按官方说明
阅读全文
摘要:也就是说 where name='x' 和 where name='X' 查询到的结果是一样的 网上有一种处理方式是可以在 where 后的字段名前加 binary:(https://www.cnblogs.com/paulwhw/p/12376226.html) 不过更根本的解决方法也许应该是更改数据库的排序规则:(https://www.cnblogs.com/jerviscui/p/1179...
阅读全文
摘要:在最新版本(14.0)的 sql server management studio 中,角色不能直接编辑,需要在服务器属性中进行修改 移除掉 public 查看任意数据库的权限,然后新建的用户就看不到其它数据库了,只给用户可以看的数据库权限即可。 创建登录名: CREATE LOGIN test_u
阅读全文
摘要:转自:https://www.cnblogs.com/ywangzi/archive/2011/11/29/2267666.html 使用命令: use [数据库名] DBCC CHECKIDENT ('[数据表名]', RESEED, [需要的值-1]) 如: USE pubs GO DBCC CHECKIDENT (jobs, RESEED, 30) GO
阅读全文
摘要:通过查询系统表,可以批量获得 drop 语句,执行即可。。。 select 'drop table '+name+';' from sys.tables
阅读全文
摘要:1、在源数据库上右键任务,选择生成脚本… 2、在生成脚本的高级选项中,根据数据库的内容,选择相应的选项,主要是红框圈出的部分,最后选择仅架构(若数据库的数据量不大,可以直接导出 架构和数据,在新数据库直接执行 sql 脚本即可。但数据量过大的话,数据的 sql 脚本会很大,很难执行,所以先仅导出架构
阅读全文
摘要:https://blog.csdn.net/guguda2008/article/details/6073049
阅读全文
摘要:解决 未启用 SQL Server 身份验证 的问题: 1. 运行 regedit,进入注册表编辑器 2. 打开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer( M
阅读全文
摘要:1.如果MSSQLSERVER服务已经启动,则停止。 2.以管理员身份打开命令行,执行命令:“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe” -c -m(路径请根据实际安装路径和版本进行修改) 3.等待执行完成后,打开SQL Server Management Studio,...
阅读全文