Показать сообщение отдельно
Старый 28.12.2018, 06:50   #1  
CHESER85 is offline
CHESER85
Участник
 
93 / 11 (1) +
Регистрация: 04.08.2011
Адрес: Ufa
Записей в блоге: 1
Запуск скрипта из аксапты и получение результата на форму AX
Добрый день уважаемые программисты!
Версия системы AX 4.0
Имеется очень полезный скрипт на SQL сервере, который отображает блокировки. Приведу его, возможно кому нибудь пригодится.

CREATE TABLE #sp_who2 (SPID INT,Status VARCHAR(255),
Login VARCHAR(255),HostName VARCHAR(255),
BlkBy VARCHAR(255),DBName VARCHAR(255),
Command VARCHAR(255),CPUTime INT,
DiskIO INT,LastBatch VARCHAR(255),
ProgramName VARCHAR(255),SPID2 INT,
REQUESTID INT)
INSERT INTO #sp_who2 EXEC sp_who2

update s
set blkBy = 'SRC'
from #sp_who2 s
join #sp_who2 t
on s.spid = cast(t.blkby as integer)
where s.blkby = ' .' and t.blkby <> ' .'


SELECT s.SPID, s.HostName, BlkBy, p.login_time, p.waittime, s.status, Command, LastBatch, CPUTime, DiskIO, dm.text
FROM #sp_who2 s
join sys.sysprocesses p
on (p.spid = s.spid)
cross apply sys.dm_exec_sql_text(p.sql_handle) dm
-- Add any filtering of the results here :
WHERE DBName = 'SQL' and ProgramName='Microsoft Dynamics AX' AND BlkBy <> ' .'
-- Add any sorting of the results here :
ORDER BY blkBy DESC, LastBatch DESC

DROP TABLE #sp_who2

Вопрос в чем: часто обращаются к программистам чтобы посмотрели блокировки на сервере, хочется сделать формочку в аксапте, которая бы запускала этот скрипт на sql сервере и получала результат, чтобы люди не заходя на sql сервер из под аксапты получали сведения о блокировках. Как считаете, вполне реализуемая задача?
За это сообщение автора поблагодарили: Player1 (2).