init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,45 @@
|
|||
--Migration
|
||||
CREATE table #tmp(
|
||||
TableName nvarchar(128)
|
||||
,TableCol nvarchar(128)
|
||||
,dibValue nvarchar(200)
|
||||
,dibID int
|
||||
,dibType nvarchar(128)
|
||||
,TanevID int
|
||||
)
|
||||
|
||||
DECLARE @sql nvarchar(max)=''
|
||||
SELECT @sql+=N'
|
||||
SELECT DISTINCT
|
||||
'''++OBJECT_NAME(dibfkRef.parent_object_id)++''' as TableName
|
||||
,'''++COL_NAME(fkc.parent_object_id,fkc.parent_column_id)++''' as TableCol
|
||||
,dib.C_NAME as dibValue
|
||||
,dib.ID as dibID
|
||||
,dib.C_TYPE as dibType
|
||||
,tn.ID as TanevID
|
||||
FROM T_INTEZMENY i
|
||||
INNER JOIN T_TANEV tn ON tn.C_INTEZMENYID=i.ID AND tn.TOROLT=''F'' AND tn.C_NEV=''2018/2019''
|
||||
INNER JOIN '+OBJECT_NAME(dibfkRef.parent_object_id)+' t ON t.'+CASE WHEN OBJECT_NAME(dibfkRef.parent_object_id) IN ('T_TANULO','T_ALKALMAZOTT','T_CSOPORT','T_OSZTALY') THEN 'C_ALTANEVID' ELSE 'C_TANEVID' END+'=tn.ID AND t.TOROLT=''F''
|
||||
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID=t.'+COL_NAME(fkc.parent_object_id,fkc.parent_column_id)+' AND dib.C_TANEVID=tn.ID AND dib.TOROLT=''T''
|
||||
WHERE i.TOROLT=''F'''
|
||||
FROM sys.foreign_keys dibfk
|
||||
INNER JOIN sys.foreign_keys dibfkRef ON dibfk.parent_object_id=dibfkRef.referenced_object_id
|
||||
INNER JOIN sys.foreign_key_columns fkc ON fkc.parent_object_id=dibfkRef.parent_object_id
|
||||
AND fkc.referenced_object_id=dibfk.parent_object_id AND fkc.referenced_column_id=1 AND fkc.constraint_object_id=dibfkRef.object_id
|
||||
WHERE OBJECT_NAME(dibfk.referenced_object_id)='T_DICTIONARYITEMBASE' AND OBJECT_NAME(dibfkRef.parent_object_id)<>'T_EVFOLYAMTIPUS_OKTATASINEVELE'
|
||||
|
||||
insert into #tmp (TableName,TableCol,dibValue,dibID,dibType,TanevID)
|
||||
exec (@sql)
|
||||
select * from #tmp
|
||||
set @sql=N'DECLARE @newId INT
|
||||
'
|
||||
select @sql+= N'
|
||||
SET @newId=(SELECT TOP 1 ID FROM T_DICTIONARYITEMBASE WHERE C_NAME='''+dibValue+''' AND C_TYPE='''+dibType+''' AND C_TANEVID='+cast(TanevID as VARCHAR)+' AND TOROLT=''F'')
|
||||
IF @newId IS NOT NULL
|
||||
UPDATE '+TableName+' SET '+TableCol+' = @newId WHERE C_TANEVID='+cast(TanevID AS VARCHAR)+' AND TOROLT=''F'' AND '+TableCol+' = '+CAST(dibID as VARCHAR)+'
|
||||
ELSE
|
||||
UPDATE T_DICTIONARYITEMBASE SET TOROLT=''F'' WHERE C_TANEVID='+cast(TanevID as VARCHAR)+' AND C_TYPE='''+dibType+''' AND C_NAME='''+dibValue+''' AND TOROLT=''T'' AND ID = '+CAST(dibID as VARCHAR)
|
||||
FROM #tmp
|
||||
exec(@sql)
|
||||
print @sql
|
||||
drop table #tmp
|
Loading…
Add table
Add a link
Reference in a new issue