72 lines
No EOL
2.4 KiB
Transact-SQL
72 lines
No EOL
2.4 KiB
Transact-SQL
/*Töröltre állítjuk a törölt adatszótarelemhey tartozó altábla elemét.*/
|
|
|
|
;DISABLE TRIGGER ALL ON dbo.T_DICTIONARYITEMBASENYELV;
|
|
UPDATE d SET
|
|
d.TOROLT = 'T'
|
|
,d.MODIFIER = 0
|
|
,LASTCHANGED = GETDATE()
|
|
FROM dbo.T_DICTIONARYITEMBASENYELV d
|
|
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = d.ID AND dib.C_TANEVID = d.C_TANEVID AND dib.TOROLT = 'T'
|
|
WHERE d.TOROLT = 'F';
|
|
ENABLE TRIGGER ALL ON dbo.T_DICTIONARYITEMBASENYELV;
|
|
|
|
|
|
DISABLE TRIGGER ALL ON dbo.T_OKTATASINEVELESIFELADAT;
|
|
UPDATE d SET
|
|
d.TOROLT = 'T'
|
|
,d.MODIFIER = 0
|
|
,LASTCHANGED = GETDATE()
|
|
FROM dbo.T_OKTATASINEVELESIFELADAT d
|
|
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = d.ID AND dib.C_TANEVID = d.C_ALTANEVID AND dib.TOROLT = 'T'
|
|
WHERE d.TOROLT = 'F';
|
|
ENABLE TRIGGER ALL ON dbo.T_OKTATASINEVELESIFELADAT;
|
|
|
|
|
|
DISABLE TRIGGER ALL ON dbo.T_OKTNEVELESIKATEGORIA;
|
|
UPDATE d SET
|
|
d.TOROLT = 'T'
|
|
,d.MODIFIER = 0
|
|
,LASTCHANGED = GETDATE()
|
|
FROM dbo.T_OKTNEVELESIKATEGORIA d
|
|
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = d.ID AND dib.C_TANEVID = d.C_ALTANEVID AND dib.TOROLT = 'T'
|
|
WHERE d.TOROLT = 'F';
|
|
ENABLE TRIGGER ALL ON dbo.T_OKTNEVELESIKATEGORIA;
|
|
|
|
|
|
DECLARE
|
|
@tableName nvarchar(200)
|
|
,@sql nvarchar(max)
|
|
|
|
DECLARE tableCursor CURSOR FAST_FORWARD LOCAL FOR
|
|
SELECT DISTINCT OBJECT_NAME(parent_object_id)
|
|
FROM sys.foreign_key_columns
|
|
WHERE referenced_object_id = OBJECT_ID('T_DICTIONARYITEMBASE')
|
|
AND OBJECT_NAME(parent_object_id) NOT IN ('T_OKTNEVELESIKATEGORIA', 'T_OKTATASINEVELESIFELADAT','T_DICTIONARYITEMBASENYELV')
|
|
|
|
OPEN tableCursor
|
|
|
|
FETCH NEXT FROM tableCursor
|
|
INTO @tableName
|
|
|
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
|
SET @sql = '
|
|
DISABLE TRIGGER ALL ON dbo.' + @tableName + ';
|
|
UPDATE d SET
|
|
d.TOROLT = ''T''
|
|
,d.MODIFIER = 0
|
|
,LASTCHANGED = GETDATE()
|
|
FROM dbo.' + @tableName + ' d
|
|
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = d.ID AND dib.C_TANEVID = d.C_ALTANEVID AND dib.TOROLT = ''T''
|
|
WHERE d.TOROLT = ''F'';
|
|
|
|
ENABLE TRIGGER ALL ON dbo.' + @tableName + ';
|
|
'
|
|
PRINT @tableName
|
|
EXEC sys.sp_executesql @sql
|
|
|
|
FETCH NEXT FROM tableCursor
|
|
INTO @tableName
|
|
END
|
|
|
|
CLOSE tableCursor
|
|
DEALLOCATE tableCursor |