SQL Server 数据库部分常用语句小结(四)

SQL Server 数据库部分常用语句小结(四),第1张

概述42.统计APP应用的DB连接及IP情况 select b.hostname ,a.client_net_address, b.program_name ,count(1) as Qtyfrom sy

42.统计APP应用的DB连接及IP情况

select b.hostname,a.clIEnt_net_address,b.program_name,count(1) as Qty
from sys.dm_exec_connections a(nolock) inner join sys.sysprocesses b(nolock)
on a.session_ID=b.spID
where b.spID>50
--and a.clIEnt_net_address like'XXX.XXX.XXX.%'--限定某一类IP
group by b.hostname,b.program_name
order by 4 desc

43.查看及收缩数据库log

--查看日志大小
select DB_name(database_ID),name,size/128
from sys.master_files
where type_desc='LOG' and size/128>1000
order by size desc
--拼收缩脚本
select 'use '+DB_name(database_ID)+char(10)+'GO'+char(10)+'DBCC SHRINKfile (N'''+name+''',TruncATEONLY)'+CHAR(10)+'GO'
from sys.master_files
where type_desc='LOG' and size/128>1000
order by size desc

44.权限授权,例如将某表的select 权限授予指定用户

use [DB]
GO
GRANT SELECT ON [表] TO [用户]
GO

45.查看现在正在sql Server执行的命令

首先查看sysprocesses系统表的数据(存放有关在 Microsoft sql Server 实例中运行的进程的信息,这些进程可以是客户端进程或系统进程)。

查询示例:
select * from master..sysprocesses

在等到所有执行命令的进程ID了,如果要查看该进程的具体的SQL语句,可以利用以下语句查看:
dbcc inputbuffer(进程号)
例如:
dbcc inputbuffer(56)

46.将数据库设置为单用户模式

EXEC sp_dboption '数据库名字','Single User','TRUE'
EXEC sp_renamedb '数据库名字','更新后的数据库名字'
EXEC sp_dboption '更新后的数据库名字','FALSE'

47.查看sql Server当前正在执行的查询语句

select   db_name(r.database_ID) as db_name,s.group_ID,r.session_ID,r.blocking_session_ID as blocking,s.login_name,r.wait_type  current_wait_type,r.wait_resource,r.last_wait_type,r.wait_time/1000  wait_s,r.status  request_status,r.command,r.cpu_time,r.reads,r.writes,r.logical_reads,r.total_elapsed_time,r.start_time,s.status  session_status,substring( st.text2+1case when r.statement_end_offset = -1                                 then len(convert(nvarchar(max),st.))                           else (r.statement_end_offset - r.statement_start_offset)2                      end                     )                )  indivIDual_queryfrom sys.dm_exec_requests rinner join sys.dm_exec_sessions s     on r.session_ID=s.session_IDouter APPLY sys.dm_exec_sql_text(r.sql_handle)  stwhere ((r.wait_type<>'MISCELLANEOUS' and r.wait_type <> disPATCHER_QUEUE_SEMAPHORE' ) or r.wait_type is null)    and r.session_ID>50    <>@@spIDorder by r.session_ID asc

 

48.导出所有Job的创建脚本

step1 .在Microsoft sql Server Management Studio中,选择sql Server Agent->Jobs,按F7打开Object Explorer Details窗口,选中所有Job;

Step2.点击鼠标右键,选择Script Job as->CREATE To->New query Editor windows,然后所有Job会以sql脚本的方式显示在查询窗口中。

 

49 安装sql Server实例过程报错

 错误信息

Title: Microsoft sql Server 2008 R2 Setup------------------------------The following error has occurred:The process does not possess the 'SeSecurityPrivilege' privilege which is required for this operation.Click Retry' to retry the Failed action,or click Cancel' to cancel this action and continue setup.For help,click: http://go.microsoft.com/fwlink?linkID=20476&Prodname=Microsoft+sql+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=10.50.1600.1&EvtType=0x88792597%25400xD69AB41D------------------------------buttonS:&RetryCancel------------------------------

原因

此行为是设计使然。 除了添加以本地管理员身份运行安装程序的用户帐户之外,安装用户帐户还需要以下默认用户权限才能成功完成安装程序。

本地策略对象显示名称用户权限
管理审核和安全日志SeSecurityPrivilege

解决方案:

以具有管理凭据的用户身份登录到计算机。单击 " 开始",单击 " 运行",键入 Control admintools,然后单击 "确定"。双击 " 本地安全策略"。在 " 本地安全设置 " 对话框中,单击 " 本地策略",双击 " 用户权限分配",然后双击 " 管理审核和安全日志"。在 " 管理审核和安全日志 " 对话框中,单击 " 添加用户或组"。在 " 选择用户或组 " 对话框中,键入用于安装程序的用户帐户,然后单击 "确定" 两次。单击 " 退出 " 以关闭 " 本地安全设置 " 对话框。

此问题的详细资料可参照以下网址:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/1960bc81-d48e-462f-933a-c51cd9f94651/install-sql-server-2008-rtm-on-windows-server-2008-r2-cluster?forum=sqlsetupandupgrade

https://docs.microsoft.com/zh-cn/troubleshoot/sql/install/installation-fails-if-remove-user-right

 

在安装sql Server 2016时,会提前检查,例如检查不通过,报错如下,处理方法一样的

 修改后,需要重启电脑才能生效

 

50.通过scripts管理复制订阅的表(增加/删除)

--查看复制订阅属性select *  distribution..MSdistribution_agents添加复制分发对象exec configdb.dbo.uxpm_repl_addarticle @publisher_db =XXXXDB',@publication ????@article 表名'删除复制分发对象exec configdb.dbo.uxpm_repl_droparticle '启动快照,初始化数据select EXEC msdb.dbo.sp_start_job '''+name+'''' msdb..sysjobswhere name like %????%'----publication的名字and category_ID=15

 

总结

以上是内存溢出为你收集整理的SQL Server 数据库部分常用语句小结(四)全部内容,希望文章能够帮你解决SQL Server 数据库部分常用语句小结(四)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1150511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存