oledb接口连接sql server,如何指定sysprocesses.program_name? 使用sql server专用接口的话,可以通过在dbparm中设置appname实现但是使用oledb接口的话,则没有appname可设置,如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是想在SQLServer里面查program_name? 试试:表格自己建吧。不过这个在2008才能用 SET NOCOUNT ON ; DECLARE @EventData XML = EVENTDATA() ;--返回有关服务器或数据库事件的信息,以XML格式保存。 DECLARE @ip VARCHAR(32) = ( SELECT client_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID ) ; --记录所有操作到表中 INSERT AuditDB_DBA.dbo.DDLEvents ( EventType , EventDDL , EventXML , DatabaseName , SchemaName , ObjectName , HostName , IPAddress , ProgramName , LoginName ) SELECT @EventData.value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(100)') , @EventData.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(MAX)') , @EventData , DB_NAME() , @EventData.value('(/EVENT_INSTANCE/SchemaName)[1]', 'NVARCHAR(255)') , @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]', 'NVARCHAR(255)') , HOST_NAME() , @ip , PROGRAM_NAME() , SUSER_SNAME() ; 不是想查询,是想设置,比如你在客户端使用sql server的专用接口连接数据库时,在连接字符串dbparm中写入:appanem='app1'这样当连接成功后,你查询sysprocesses这个表(可能是该连接自己查询,也可能是其它连接通过指定的spid进行查询),会发现这个连接对应的记录中,program_name的值为app1但是在使用oledb接口时,由于dbparm中没有appname这个属性可用(设置了也无效),因此无法达到上述目标。 找了一圈,oledb接口貌似无解 如何写这个查询语句 数据不能写进对应的数据表中去 关于跨库查询的问题. 菜鸟问select语句,着急! SQL脚本修改后执行? 一道题目请教各位大侠,急等!!!!!!!!! select top n from table where ...与性能的问题。 如何从sqlserver 的备份文件 仅仅恢复一个表 企业管理器可以连接到远程sql服务器,但是.net程序不行 在SQL Server中有没有这样的函数...? 在sql 2005数据库 插入时间时,实现时间增加一天? 求查询语句
SET NOCOUNT ON ;
DECLARE @EventData XML = EVENTDATA() ;--返回有关服务器或数据库事件的信息,以XML格式保存。
DECLARE @ip VARCHAR(32) = ( SELECT client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID
) ;
--记录所有操作到表中
INSERT AuditDB_DBA.dbo.DDLEvents
( EventType ,
EventDDL ,
EventXML ,
DatabaseName ,
SchemaName ,
ObjectName ,
HostName ,
IPAddress ,
ProgramName ,
LoginName
)
SELECT @EventData.value('(/EVENT_INSTANCE/EventType)[1]',
'NVARCHAR(100)') ,
@EventData.value('(/EVENT_INSTANCE/TSQLCommand)[1]',
'NVARCHAR(MAX)') ,
@EventData ,
DB_NAME() ,
@EventData.value('(/EVENT_INSTANCE/SchemaName)[1]',
'NVARCHAR(255)') ,
@EventData.value('(/EVENT_INSTANCE/ObjectName)[1]',
'NVARCHAR(255)') ,
HOST_NAME() ,
@ip ,
PROGRAM_NAME() ,
SUSER_SNAME() ;
这样当连接成功后,你查询sysprocesses这个表(可能是该连接自己查询,也可能是其它连接通过指定的spid进行查询),会发现这个连接对应的记录中,program_name的值为app1但是在使用oledb接口时,由于dbparm中没有appname这个属性可用(设置了也无效),因此无法达到上述目标。