[SQL] 테이블 이름 및 테이블의 스키마를 SQL Server 데이터베이스의 모든 트리거를 나열 할 필요
SQL테이블 이름 및 테이블의 스키마를 SQL Server 데이터베이스의 모든 트리거를 나열 할 필요
나는 테이블 이름 및 테이블의 스키마를 SQL Server 데이터베이스의 모든 트리거를 나열해야합니다.
나는이 거의 존재 해요 :
SELECT trigger_name = name, trigger_owner = USER_NAME(uid),table_schema = , table_name = OBJECT_NAME(parent_obj),
isupdate = OBJECTPROPERTY( id, 'ExecIsUpdateTrigger'), isdelete = OBJECTPROPERTY( id, 'ExecIsDeleteTrigger'),
isinsert = OBJECTPROPERTY( id, 'ExecIsInsertTrigger'), isafter = OBJECTPROPERTY( id, 'ExecIsAfterTrigger'),
isinsteadof = OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger'),
[disabled] = OBJECTPROPERTY(id, 'ExecIsTriggerDisabled')
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
WHERE type = 'TR'
난 그냥 또한 테이블의 스키마를 얻을 필요가있다.
해결법
-
==============================
1.여기에 한 가지 방법이다 :
여기에 한 가지 방법이다 :
SELECT sysobjects.name AS trigger_name ,USER_NAME(sysobjects.uid) AS trigger_owner ,s.name AS table_schema ,OBJECT_NAME(parent_obj) AS table_name ,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate ,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete ,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert ,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter ,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid INNER JOIN sys.tables t ON sysobjects.parent_obj = t.object_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE sysobjects.type = 'TR'
편집하다: 주석이 AdventureWorks2008 작업 할 쿼리의 sysusers에 가입 할 수 있습니다.
SELECT sysobjects.name AS trigger_name ,USER_NAME(sysobjects.uid) AS trigger_owner ,s.name AS table_schema ,OBJECT_NAME(parent_obj) AS table_name ,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate ,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete ,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert ,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter ,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects /* INNER JOIN sysusers ON sysobjects.uid = sysusers.uid */ INNER JOIN sys.tables t ON sysobjects.parent_obj = t.object_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE sysobjects.type = 'TR'
편집 2 : 2000 SQL
SELECT o.name AS trigger_name ,'x' AS trigger_owner /*USER_NAME(o.uid)*/ ,s.name AS table_schema ,OBJECT_NAME(o.parent_obj) AS table_name ,OBJECTPROPERTY(o.id, 'ExecIsUpdateTrigger') AS isupdate ,OBJECTPROPERTY(o.id, 'ExecIsDeleteTrigger') AS isdelete ,OBJECTPROPERTY(o.id, 'ExecIsInsertTrigger') AS isinsert ,OBJECTPROPERTY(o.id, 'ExecIsAfterTrigger') AS isafter ,OBJECTPROPERTY(o.id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,OBJECTPROPERTY(o.id, 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects AS o /* INNER JOIN sysusers ON sysobjects.uid = sysusers.uid */ INNER JOIN sysobjects AS o2 ON o.parent_obj = o2.id INNER JOIN sysusers AS s ON o2.uid = s.uid WHERE o.type = 'TR'
-
==============================
2.여기 당신은 간다.
여기 당신은 간다.
SELECT [so].[name] AS [trigger_name], USER_NAME([so].[uid]) AS [trigger_owner], USER_NAME([so2].[uid]) AS [table_schema], OBJECT_NAME([so].[parent_obj]) AS [table_name], OBJECTPROPERTY( [so].[id], 'ExecIsUpdateTrigger') AS [isupdate], OBJECTPROPERTY( [so].[id], 'ExecIsDeleteTrigger') AS [isdelete], OBJECTPROPERTY( [so].[id], 'ExecIsInsertTrigger') AS [isinsert], OBJECTPROPERTY( [so].[id], 'ExecIsAfterTrigger') AS [isafter], OBJECTPROPERTY( [so].[id], 'ExecIsInsteadOfTrigger') AS [isinsteadof], OBJECTPROPERTY([so].[id], 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects AS [so] INNER JOIN sysobjects AS so2 ON so.parent_obj = so2.Id WHERE [so].[type] = 'TR'
여기에 몇 가지 ...
또한 당신이 부모 테이블 스키마 정보를 끌어 시도했던 것을 볼 수, 당신은 또한 당신이 제대로 부모 테이블에 대한 스키마 정보를 얻을 수 있도록 자체에을 sysobjects 테이블에 가입해야합니다이를 위해 믿습니다. 쿼리는 위의이 작업을 수행합니다. 또한 sysusers 테이블은 가입이 제거 된 있도록 결과에 필요하지 않았다.
SQL 2000, SQL 2005 및 SQL 2008 R2 테스트
-
==============================
3.나는 최근에 같은 작업을했고 나는 SQL 서버 2천12데시벨에 대해 다음을 사용했다. 사용 관리 스튜디오 및 검색 할 데이터베이스에 연결합니다. 그런 다음 스크립트를 실행합니다.
나는 최근에 같은 작업을했고 나는 SQL 서버 2천12데시벨에 대해 다음을 사용했다. 사용 관리 스튜디오 및 검색 할 데이터베이스에 연결합니다. 그런 다음 스크립트를 실행합니다.
Select [tgr].[name] as [trigger name], [tbl].[name] as [table name] from sysobjects tgr join sysobjects tbl on tgr.parent_obj = tbl.id WHERE tgr.xtype = 'TR'
-
==============================
4.당신은 또한 다음과 같은 트리거의 몸을 얻을 수 있습니다 :
당신은 또한 다음과 같은 트리거의 몸을 얻을 수 있습니다 :
SELECT o.[name], c.[text] FROM sys.objects AS o INNER JOIN sys.syscomments AS c ON o.object_id = c.id WHERE o.[type] = 'TR'
-
==============================
5.
SELECT ServerName = @@servername, DatabaseName = db_name(), SchemaName = isnull( s.name, '' ), TableName = isnull( o.name, 'DDL Trigger' ), TriggerName = t.name, Defininion = object_definition( t.object_id ) FROM sys.triggers t LEFT JOIN sys.all_objects o ON t.parent_id = o.object_id LEFT JOIN sys.schemas s ON s.schema_id = o.schema_id ORDER BY SchemaName, TableName, TriggerName
-
==============================
6.이 쿼리를 사용합니다 :
이 쿼리를 사용합니다 :
SELECT OBJECT_NAME(parent_id) as Table_Name, * FROM [Database_Name].sys.triggers
그것은 간단하고 유용합니다.
-
==============================
7.그리고 당신은 이것에 대해 생각 할 : 매우 짧고 깔끔한 :)
그리고 당신은 이것에 대해 생각 할 : 매우 짧고 깔끔한 :)
SELECT OBJECT_NAME(parent_id) Table_or_ViewNM, name TriggerNM, is_instead_of_trigger, is_disabled FROM sys.triggers WHERE parent_class_desc = 'OBJECT_OR_COLUMN' ORDER BY OBJECT_NAME(parent_id), Name ;
-
==============================
8.
SELECT sysobjects.name AS trigger_name ,OBJECT_NAME(parent_obj) AS table_name ,s.name AS table_schema ,USER_NAME(sysobjects.uid) AS trigger_owner ,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate ,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete ,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert ,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter ,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid INNER JOIN sys.tables t ON sysobjects.parent_obj = t.object_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE sysobjects.type = 'TR'
나를 위해이 작업
-
==============================
9.이것은 내가 (보통 모델에서 뭔가 I 물건에 싸여)를 사용하는 것입니다 :
이것은 내가 (보통 모델에서 뭔가 I 물건에 싸여)를 사용하는 것입니다 :
Select [Parent] = Left((Case When Tr.Parent_Class = 0 Then '(Database)' Else Object_Name(Tr.Parent_ID) End), 32), [Schema] = Left(Coalesce(Object_Schema_Name(Tr.Object_ID), '(None)'), 16), [Trigger name] = Left(Tr.Name, 32), [Type] = Left(Tr.Type_Desc, 3), -- SQL or CLR [MS?] = (Case When Tr.Is_MS_Shipped = 1 Then 'X' Else ' ' End), [On?] = (Case When Tr.Is_Disabled = 0 Then 'X' Else ' ' End), [Repl?] = (Case When Tr.Is_Not_For_Replication = 0 Then 'X' Else ' ' End), [Event] = Left((Case When Tr.Parent_Class = 0 Then (Select Top 1 Left(Te.Event_Group_Type_Desc, 40) From Sys.Trigger_Events As Te Where Te.Object_ID = Tr.Object_ID) Else ((Case When Tr.Is_Instead_Of_Trigger = 1 Then 'Instead Of ' Else 'After ' End)) + SubString(Cast((Select [text()] = ', ' + Left(Te.Type_Desc, 1) + Lower(SubString(Te.Type_Desc, 2, 32)) + (Case When Te.Is_First = 1 Then ' (First)' When Te.Is_Last = 1 Then ' (Last)' Else '' End) From Sys.Trigger_Events As Te Where Te.Object_ID = Tr.Object_ID Order By Te.[Type] For Xml Path ('')) As Character Varying), 3, 60) End), 60) -- If you like: -- , [Get text with] = 'Select Object_Definition(' + Cast(Tr.Object_ID As Character Varying) + ')' From Sys.Triggers As Tr Order By Tr.Parent_Class, -- database triggers first Parent -- alphabetically by parent
당신이 McGyver skosh 더 볼 수 있지만 내 생각으로는 가치가있다 :
Parent Schema Trigger name Type MS? On? Repl? Event -------------------------------- ---------------- -------------------------------- ---- ---- ---- ----- ----------------------------------------- (Database) (None) ddlDatabaseTriggerLog SQL X DDL_DATABASE_LEVEL_EVENTS Employee HumanResources dEmployee SQL X Instead Of Delete Person Person iuPerson SQL X After Insert, Update PurchaseOrderDetail Purchasing iPurchaseOrderDetail SQL X X After Insert PurchaseOrderDetail Purchasing uPurchaseOrderDetail SQL X X After Update PurchaseOrderHeader Purchasing uPurchaseOrderHeader SQL X X After Update SalesOrderDetail Sales iduSalesOrderDetail SQL X X After Insert, Update, Delete SalesOrderHeader Sales uSalesOrderHeader SQL X After Update (First) Vendor Purchasing dVendor SQL X Instead Of Delete WorkOrder Production iWorkOrder SQL X X After Insert WorkOrder Production uWorkOrder SQL X X After Update
(스크롤 바로 최종적이고 가장 유용한 열을 볼 수 있습니다)
-
==============================
10.사용이 검색어 :
사용이 검색어 :
SELECT DB_NAME() AS DataBaseName, S.Name AS SchemaName, T.name AS TableName, dbo.SysObjects.Name AS TriggerName, dbo.sysComments.Text AS SqlContent, FROM dbo.SysObjects INNER JOIN dbo.sysComments ON dbo.SysObjects.ID = dbo.sysComments.ID INNER JOIN sys.tables AS T ON sysobjects.parent_obj = t.object_id INNER JOIN sys.schemas AS S ON t.schema_id = s.schema_id WHERE dbo.SysObjects.xType = 'TR' AND dbo.SysObjects.Name LIKE 'Permit_AfterInsert' ---- <----- HERE
-
==============================
11.이 도움이 될 수 있습니다.
이 도움이 될 수 있습니다.
SELECT DISTINCT o.[name] AS [Table] FROM [sysobjects] o JOIN [sysobjects] tr ON o.[id] = tr.[parent_obj] WHERE tr.[type] = 'tr' ORDER BY [Table] Get a list of tables and all their triggers. SELECT DISTINCT o.[name] AS [Table], tr.[name] AS [Trigger] FROM [sysobjects] o JOIN [sysobjects] tr ON o.[id] = tr.[parent_obj] WHERE tr.[type] = 'tr' ORDER BY [Table], [Trigger]
-
==============================
12.당신이 모든 트리거를 찾고 있다면, MS-SQL은 모두 SQL 기반의 트리거 (sysobjects.type = 'TR')와 CLR 기반의 트리거 (sysobjects.type = 'TA')를 가지고 기억한다.
당신이 모든 트리거를 찾고 있다면, MS-SQL은 모두 SQL 기반의 트리거 (sysobjects.type = 'TR')와 CLR 기반의 트리거 (sysobjects.type = 'TA')를 가지고 기억한다.
-
==============================
13.같이 바로 위의 코드는 잘못된 것입니다 :
같이 바로 위의 코드는 잘못된 것입니다 :
SELECT sysobjects.name AS trigger_name --,USER_NAME(sysobjects.uid) AS trigger_owner --,s.name AS table_schema --,OBJECT_NAME(parent_obj) AS table_name --,OBJECTPROPERTY( id, 'ExecIsUpdateTrigger') AS isupdate --,OBJECTPROPERTY( id, 'ExecIsDeleteTrigger') AS isdelete --,OBJECTPROPERTY( id, 'ExecIsInsertTrigger') AS isinsert --,OBJECTPROPERTY( id, 'ExecIsAfterTrigger') AS isafter --,OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger') AS isinsteadof --,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled] FROM sysobjects /* INNER JOIN sysusers ON sysobjects.uid = sysusers.uid */ INNER JOIN sys.tables t ON sysobjects.parent_obj = t.object_id INNER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE sysobjects.type = 'TR' EXCEPT SELECT OBJECT_NAME(parent_id) as Table_Name FROM sys.triggers
-
==============================
14.Necromancing. 모든 솔루션은 지금까지 완성도의 비트 짧은 가을 있기 때문에 그냥 게시.
Necromancing. 모든 솔루션은 지금까지 완성도의 비트 짧은 가을 있기 때문에 그냥 게시.
SELECT sch.name AS trigger_table_schema ,systbl.name AS trigger_table_name ,systrg.name AS trigger_name ,sysm.definition AS trigger_definition ,systrg.is_instead_of_trigger -- https://stackoverflow.com/questions/5340638/difference-between-a-for-and-after-triggers -- Difference between a FOR and AFTER triggers? -- CREATE TRIGGER trgTable on dbo.Table FOR INSERT,UPDATE,DELETE -- Is the same as -- CREATE TRIGGER trgTable on dbo.Table AFTER INSERT,UPDATE,DELETE -- An INSTEAD OF trigger is different, and fires before and instead of the insert -- and can be used on views, in order to insert the appropriate values into the underlying tables. -- AFTER specifies that the DML trigger is fired only when all operations -- specified in the triggering SQL statement have executed successfully. -- All referential cascade actions and constraint checks also must succeed before this trigger fires. -- AFTER is the default when FOR is the only keyword specified. ,CASE WHEN systrg.is_instead_of_trigger = 1 THEN 0 ELSE 1 END AS is_after_trigger ,systrg.is_not_for_replication ,systrg.is_disabled ,systrg.create_date ,systrg.modify_date ,CASE WHEN systrg.parent_class = 1 THEN 'TABLE' WHEN systrg.parent_class = 0 THEN 'DATABASE' END trigger_class ,CASE WHEN systrg.[type] = 'TA' then 'Assembly (CLR) trigger' WHEN systrg.[type] = 'TR' then 'SQL trigger' ELSE '' END AS trigger_type -- https://dataedo.com/kb/query/sql-server/list-triggers -- ,(CASE WHEN objectproperty(systrg.object_id, 'ExecIsUpdateTrigger') = 1 -- THEN 'UPDATE ' ELSE '' END -- + CASE WHEN objectproperty(systrg.object_id, 'ExecIsDeleteTrigger') = 1 -- THEN 'DELETE ' ELSE '' END -- + CASE WHEN objectproperty(systrg.object_id, 'ExecIsInsertTrigger') = 1 -- THEN 'INSERT' ELSE '' END -- ) AS trigger_event , ( STUFF ( ( SELECT ', ' + type_desc AS [text()] -- STRING_AGG(type_desc, ', ') AS foo FROM sys.events AS syse WHERE syse.object_id = systrg.object_id FOR XML PATH(''), TYPE -- GROUP BY syse.object_id ).value('.[1]', 'nvarchar(MAX)') , 1, 2, '' ) ) AS trigger_event_groups -- ,CASE WHEN systrg.parent_class = 1 THEN 'TABLE' WHEN systrg.parent_class = 0 THEN 'DATABASE' END trigger_class ,'DROP TRIGGER "' + sch.name + '"."' + systrg.name + '"; ' AS sql -- ,systrg.* FROM sys.triggers AS systrg LEFT JOIN sys.sql_modules AS sysm ON sysm.object_id = systrg.object_id -- sys.objects for view triggers -- LEFT JOIN sys.objects AS systbl ON systbl.object_id = systrg.object_id -- inner join if you only want table-triggers LEFT JOIN sys.tables AS systbl ON systbl.object_id = systrg.parent_id LEFT JOIN sys.schemas AS sch ON sch.schema_id = systbl.schema_id WHERE (1=1) -- AND sch.name IS NOT NULL -- AND sch.name IS NULL -- AND sch.name = 'dbo' -- And here, exclude some triggers with a certain naming schema /* AND ( -- systbl.name IS NULL -- OR NOT ( systrg.name = 'TRG_' + systbl.name + '_INSERT_History' OR systrg.name = 'TRG_' + systbl.name + '_UPDATE_History' OR systrg.name = 'TRG_' + systbl.name + '_DELETE_History' ) ) */ ORDER BY sch.name ,systbl.name ,systrg.name
-
==============================
15.
SELECT tbl.name as Table_Name,trig.name as Trigger_Name,trig.is_disabled FROM [sys].[triggers] as trig inner join sys.tables as tbl on trig.parent_id = tbl.object_id
-
==============================
16.
CREATE TABLE [dbo].[VERSIONS]( [ID] [uniqueidentifier] NOT NULL, [DATE] [varchar](100) NULL, [SERVER] [varchar](100) NULL, [DATABASE] [varchar](100) NULL, [USER] [varchar](100) NULL, [OBJECT] [varchar](100) NULL, [ACTION] [varchar](100) NULL, [CODE] [varchar](max) NULL, CONSTRAINT [PK_VERSIONS] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[VERSIONS] ADD CONSTRAINT [DF_VERSIONS_ID] DEFAULT (newid()) FOR [ID] GO DROP TRIGGER [DB_VERSIONS_TRIGGER] ON ALL SERVER CREATE TRIGGER [DB_VERSIONS_TRIGGER] ON ALL SERVER FOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE, CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER, CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION, CREATE_VIEW, ALTER_VIEW, DROP_VIEW, CREATE_TABLE, ALTER_TABLE, DROP_TABLE AS SET NOCOUNT ON SET XACT_ABORT OFF; BEGIN TRY DECLARE @DATA XML = EVENTDATA() DECLARE @SERVER VARCHAR(100) = @DATA.value('(EVENT_INSTANCE/ServerName)[1]','VARCHAR(100)') DECLARE @DATABASE VARCHAR(100) = @DATA.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'VARCHAR(100)') DECLARE @USER VARCHAR(100) = @DATA.value('(/EVENT_INSTANCE/LoginName)[1]','VARCHAR(100)') DECLARE @OBJECT VARCHAR(100) = @DATA.value('(EVENT_INSTANCE/ObjectName)[1]','VARCHAR(100)') DECLARE @ACTION VARCHAR(100) = @DATA.value('(/EVENT_INSTANCE/EventType)[1]','VARCHAR(100)') DECLARE @CODE VARCHAR(MAX) = @DATA.value('(/EVENT_INSTANCE//TSQLCommand)[1]','VARCHAR(MAX)' ) IF OBJECT_ID('DB_VERSIONS.dbo.VERSIONS') IS NOT NULL BEGIN INSERT INTO [DB_VERSIONS].[dbo].[VERSIONS]([SERVER], [DATABASE], [USER], [OBJECT], [ACTION], [DATE], [CODE]) VALUES (@SERVER, @DATABASE, @USER, @OBJECT, @ACTION, getdate(), ISNULL(@CODE, 'NA')) END END TRY BEGIN CATCH END CATCH RETURN
-
==============================
17.하나의 어려움은 텍스트 또는 설명 라인 피드를 가지고 있다는 것입니다. 내 서투른 kludge은 더 많은 표 뭔가를 얻기 위해, 스프레드 시트, SELECT 절에 HTML 문자를 추가 복사하고 메모장에 이르기까지 모든 붙여 넣기, 브라우저에서, html로 확장자 열기, 저장, 복사해서 붙여 넣는 것입니다. 예
하나의 어려움은 텍스트 또는 설명 라인 피드를 가지고 있다는 것입니다. 내 서투른 kludge은 더 많은 표 뭔가를 얻기 위해, 스프레드 시트, SELECT 절에 HTML 문자를 추가 복사하고 메모장에 이르기까지 모든 붙여 넣기, 브라우저에서, html로 확장자 열기, 저장, 복사해서 붙여 넣는 것입니다. 예
SELECT obj.NAME AS TBL,trg.name,sm.definition,'<br>' FROM SYS.OBJECTS obj LEFT JOIN (SELECT trg1.object_id,trg1.parent_object_id,trg1.name FROM sys.objects trg1 WHERE trg1.type='tr' AND trg1.name like 'update%') trg ON obj.object_id=trg.parent_object_id LEFT JOIN (SELECT sm1.object_id,sm1.definition FROM sys.sql_modules sm1 where sm1.definition like '%suser_sname()%') sm ON trg.object_id=sm.object_id WHERE obj.type='u' ORDER BY obj.name;
당신은 여전히 하나 개의 필드에 대한 설명을 얻을 탭 바보짓해야 할 수도 있지만, 적어도 내가 아주 도움이되는, 한 줄에 수 있습니다.
-
==============================
18.C # 유아용 침대 :이 슈퍼 제네릭 하나 라이너와 함께 끝났다. 이 원래 포스터 및 / 또는 그냥 구글에했던 것과 같은 질문을 입력 한 사람 모두에게 유용한 희망 :
C # 유아용 침대 :이 슈퍼 제네릭 하나 라이너와 함께 끝났다. 이 원래 포스터 및 / 또는 그냥 구글에했던 것과 같은 질문을 입력 한 사람 모두에게 유용한 희망 :
SELECT TriggerRecord.name as TriggerName,ParentRecord.name as ForTableName FROM sysobjects TriggerRecord INNER JOIN sysobjects ParentRecord ON TriggerRecord.parent_obj=ParentRecord.id WHERE TriggerRecord.xtype='TR'
쿼리 특성 :
-
==============================
19.
SELECT OBJECT_NAME(PARENT_OBJECT_ID) AS PARENT_TABLE, OBJECT_NAME(OBJECT_ID) TRIGGER_TABLE, * FROM SYS.OBJECTS WHERE TYPE = 'TR'
from https://stackoverflow.com/questions/4305691/need-to-list-all-triggers-in-sql-server-database-with-table-name-and-tables-sch by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL의에서 인덱스 목록 열 (0) | 2020.04.28 |
---|---|
[SQL] 어떻게 공유 테이블 구조와 멀티 테넌트 (multi-tenant) 데이터베이스를 만드는 방법? (0) | 2020.04.28 |
[SQL] 어떻게 활성 SQL Server 연결을 볼 수 있습니까? (0) | 2020.04.28 |
[SQL] 왜 당신은 데이터베이스에보기를 만들려면 어떻게해야합니까? (0) | 2020.04.28 |
[SQL] WHERE IN 조건이 문자열 값을 수락하지 (0) | 2020.04.28 |