powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто последний изменил хранимую процедуру
14 сообщений из 14, страница 1 из 1
Кто последний изменил хранимую процедуру
    #36018296
Может кто подскажет, как посмотреть кто последний правил хранимую процедуру???
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36018404
Crimean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сервер какой?
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36018940
beaver06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Crimeanсервер какой?

Например MS SQL 2005
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36019086
Crimean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beaver06Crimeanсервер какой?

Например MS SQL 2005

например DLL триггера
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36019515
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crimeanbeaver06Crimeanсервер какой?

Например MS SQL 2005

например DLL триггера
Именно.. А можно еще и через Event Notifocation (через Service Broker).
С уважением, Алексей
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36020404
Так всетаки как на 2005 SQL Servere посмотреть, кто изменил хранимку???
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36020554
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код выдран из стандартных отчетов...
так пойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
use db_name;

declare @enable int; 
select top  1  @enable = convert(int,value_in_use) from sys.configurations where name = 'default trace enabled'  
if @enable =  1  
begin 
        declare @d1 datetime; 
        declare @diff int; 
        declare @curr_tracefilename varchar( 500 );  
        declare @base_tracefilename varchar( 500 );  
        declare @indx int ; 
        declare @temp_trace table (
                obj_name nvarchar( 256 )
        ,       obj_id int
        ,       database_name nvarchar( 256 )
        ,       start_time datetime
        ,       event_class int
        ,       event_subclass int
        ,       object_type int
        ,       server_name nvarchar( 256 )
        ,       login_name nvarchar( 256 )
        ,       user_name nvarchar( 256 )
        ,       application_name nvarchar( 256 )
        ,       ddl_operation nvarchar( 40 ) 
        );
        
        select @curr_tracefilename = path from sys.traces where is_default =  1  ;  
        set @curr_tracefilename = reverse(@curr_tracefilename) 
        select @indx  = PATINDEX('%\%', @curr_tracefilename) 
        set @curr_tracefilename = reverse(@curr_tracefilename) 
        set @base_tracefilename = LEFT( @curr_tracefilename,len(@curr_tracefilename) - @indx) + '\log.trc'; 
        
        insert into @temp_trace 
        select ObjectName
        ,       ObjectID
        ,       DatabaseName
        ,       StartTime
        ,       EventClass
        ,       EventSubClass
        ,       ObjectType
        ,       ServerName
        ,       LoginName
        ,       NTUserName
        ,       ApplicationName
        ,       'temp' 
        from ::fn_trace_gettable( @base_tracefilename, default )  
        where EventClass in ( 46 , 47 , 164 ) and EventSubclass =  0   and DatabaseID = db_id() ; 

        update @temp_trace set ddl_operation = 'CREATE' where event_class =  46 ;
        update @temp_trace set ddl_operation = 'DROP' where event_class =  47 ;
        update @temp_trace set ddl_operation = 'ALTER' where event_class =  164 ; 

        select @d1 = min(start_time) from @temp_trace 
        set @diff= datediff(hh,@d1,getdate())
        set @diff=@diff/ 24 ; 
        
        select  @diff as difference
        ,       @d1 as date
        ,       object_type as obj_type_desc 
        ,       (dense_rank() over (order by obj_name,object_type ) )% 2  as l1 
        ,       (dense_rank() over (order by obj_name,object_type,start_time ))% 2  as l2
        ,       *
        from @temp_trace where object_type not in ( 21587 ) -- don't bother with auto-statistics as it generates too much noise
        order by start_time desc;
end else 
begin 
        Select top  0   1  as difference,    1  as date,  1  as obj_type_desc,   1  as l1,  1  as l2,        1  as obj_name,   1  as obj_id,  1  as database_name,         1  as start_time,  1  as event_class,  1  as event_subclass,  1  as object_type,  1  as server_name,  1  as login_name,  1  as user_name,  1  as application_name,  1  as ddl_operation  
end  
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #36020557
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Кто последний изменил хранимую процедуру
    #40084980
Здравствуйте!

Может что изменилось по этому вопросу в MS SQL Server 2017? Предложенный здесь скрипт не помог. Я поменял в нем наименование БД вверху. Может еще что надо было?
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #40085136
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркун,

настройте аудит, dafault trace хранит данные не вечно.
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #40085167
dvim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Гаркун,сделайте DDL триггер и пишите всю историю изменений хп в базу.... реально помогает
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #40085222
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно, хранимые процедуры могут изменять все в любое удобное им время, или все-таки есть организационная процедура?
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #40085241
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wlr-l,

бывают системы, где, условно, 100 пользователей и все они - sa. Мир прекрасен и ужасен одновременно, что поделать.
...
Рейтинг: 0 / 0
Кто последний изменил хранимую процедуру
    #40085276
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Wlr-l,

бывают системы, где, условно, 100 пользователей и все они - sa. Мир прекрасен и ужасен одновременно, что поделать.
Даже тогда история будет полезна - с какого компа меняли, когда, что за изменения.
Даже если комп будет один и тот же (например, SSMS запущен на самом сервере), знание "когда" и "что" решает 99% задач.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто последний изменил хранимую процедуру
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]