kreta/Kreta.DataAccess.Migrations/Scripts/20210408100109_KRETA2_8174/KRETA2_8174.sql
2024-03-13 00:33:46 +01:00

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