Localisation updates from https://translatewiki.net.
[lhc/web/wiklou.git] / maintenance / mssql / archives / patch-recentchanges-drop-fks.sql
1 DECLARE @base nvarchar(max),
2 @SQL nvarchar(max),
3 @id sysname;--
4
5 SET @base = 'ALTER TABLE /*_*/recentchanges DROP CONSTRAINT ';--
6
7 SELECT @id = fk.name
8 FROM sys.foreign_keys fk
9 JOIN sys.foreign_key_columns fkc
10 ON fkc.constraint_object_id = fk.object_id
11 JOIN sys.columns c
12 ON c.column_id = fkc.parent_column_id
13 AND c.object_id = fkc.parent_object_id
14 WHERE
15 fk.parent_object_id = OBJECT_ID('/*_*/recentchanges')
16 AND fk.referenced_object_id = OBJECT_ID('/*_*/page')
17 AND c.name = 'rc_cur_id';--
18
19 SET @SQL = @base + @id;--
20
21 EXEC sp_executesql @SQL;--
22
23 SELECT @id = fk.name
24 FROM sys.foreign_keys fk
25 JOIN sys.foreign_key_columns fkc
26 ON fkc.constraint_object_id = fk.object_id
27 JOIN sys.columns c
28 ON c.column_id = fkc.parent_column_id
29 AND c.object_id = fkc.parent_object_id
30 WHERE
31 fk.parent_object_id = OBJECT_ID('/*_*/recentchanges')
32 AND fk.referenced_object_id = OBJECT_ID('/*_*/revision')
33 AND c.name = 'rc_this_oldid';--
34
35 SET @SQL = @base + @id;--
36
37 EXEC sp_executesql @SQL;--
38
39 SELECT @id = fk.name
40 FROM sys.foreign_keys fk
41 JOIN sys.foreign_key_columns fkc
42 ON fkc.constraint_object_id = fk.object_id
43 JOIN sys.columns c
44 ON c.column_id = fkc.parent_column_id
45 AND c.object_id = fkc.parent_object_id
46 WHERE
47 fk.parent_object_id = OBJECT_ID('/*_*/recentchanges')
48 AND fk.referenced_object_id = OBJECT_ID('/*_*/revision')
49 AND c.name = 'rc_last_oldid';--
50
51 SET @SQL = @base + @id;--
52
53 EXEC sp_executesql @SQL;--
54
55 -- while we're at it, let's fix up the other foreign key constraints on recentchanges
56 -- as future patches touch constraints on other tables, they'll take the time to update constraint names there as well
57 ALTER TABLE /*_*/recentchanges DROP CONSTRAINT FK_rc_logid_log_id;--
58 ALTER TABLE /*_*/recentchanges ADD CONSTRAINT rc_logid__log_id__fk FOREIGN KEY (rc_logid) REFERENCES /*_*/logging(log_id) ON DELETE CASCADE;--
59
60 SELECT @id = fk.name
61 FROM sys.foreign_keys fk
62 JOIN sys.foreign_key_columns fkc
63 ON fkc.constraint_object_id = fk.object_id
64 JOIN sys.columns c
65 ON c.column_id = fkc.parent_column_id
66 AND c.object_id = fkc.parent_object_id
67 WHERE
68 fk.parent_object_id = OBJECT_ID('/*_*/recentchanges')
69 AND fk.referenced_object_id = OBJECT_ID('/*_*/mwuser')
70 AND c.name = 'rc_user';--
71
72 SET @SQL = @base + @id;--
73
74 EXEC sp_executesql @SQL;--
75
76 ALTER TABLE /*_*/recentchanges ADD CONSTRAINT rc_user__user_id__fk FOREIGN KEY (rc_user) REFERENCES /*_*/mwuser(user_id);