REALLY URGENT: Repository Lost
Moderator: SourceGear
Alright. Let's get some information. I need to see a tree to look see if some versions of objects are out of sync. Can you run the following query, save the results as tab delimited, and then send them to me? Do you still have my email address?
DECLARE @repid [int], @lasttxid [bigint];
SELECT @repid = 7, @lasttxid = -1;
DECLARE @@t TABLE
( treelevel int not null,
pph int not null,
objverid bigint not null,
objid bigint not null,
objversion bigint not null,
name nvarchar(256) not null,
objprops smallint not null,
pinnedfromobjverid bigint not null,
fph int not null,
fullpath nvarchar(1024) null,
primary key (treelevel, pph, fph, objid)
)
INSERT INTO @@t (treelevel, pph, objverid, objid, objversion, name,
objprops, pinnedfromobjverid, fph) SELECT treelevel, parentpathhash,
objverid, objid, objversion, LOWER(name), objprops, pinnedfromobjverid,
fullpathhash FROM sgvault.dbo.ufngettreestructure(@repid, @lasttxid, default)
DECLARE @@treelevel int, @@rowsaffected int
SET @@treelevel = 0
UPDATE @@t SET fullpath = name WHERE treelevel = @@treelevel SET
@@rowsaffected = @@ROWCOUNT WHILE ( @@rowsaffected > 0 ) BEGIN
UPDATE t SET t.fullpath = prev.fullpath + N'/' + t.name
FROM @@t t INNER JOIN
@@t prev ON (prev.treelevel = @@treelevel) AND
(prev.fph = t.pph)
WHERE (t.treelevel = (@@treelevel + 1))
SELECT @@rowsaffected = @@ROWCOUNT, @@treelevel = @@treelevel +
1 END -- WHILE
-- you could join on objid here to find the items affected
SELECT * FROM @@t ORDER BY treelevel, pph, name;
DECLARE @repid [int], @lasttxid [bigint];
SELECT @repid = 7, @lasttxid = -1;
DECLARE @@t TABLE
( treelevel int not null,
pph int not null,
objverid bigint not null,
objid bigint not null,
objversion bigint not null,
name nvarchar(256) not null,
objprops smallint not null,
pinnedfromobjverid bigint not null,
fph int not null,
fullpath nvarchar(1024) null,
primary key (treelevel, pph, fph, objid)
)
INSERT INTO @@t (treelevel, pph, objverid, objid, objversion, name,
objprops, pinnedfromobjverid, fph) SELECT treelevel, parentpathhash,
objverid, objid, objversion, LOWER(name), objprops, pinnedfromobjverid,
fullpathhash FROM sgvault.dbo.ufngettreestructure(@repid, @lasttxid, default)
DECLARE @@treelevel int, @@rowsaffected int
SET @@treelevel = 0
UPDATE @@t SET fullpath = name WHERE treelevel = @@treelevel SET
@@rowsaffected = @@ROWCOUNT WHILE ( @@rowsaffected > 0 ) BEGIN
UPDATE t SET t.fullpath = prev.fullpath + N'/' + t.name
FROM @@t t INNER JOIN
@@t prev ON (prev.treelevel = @@treelevel) AND
(prev.fph = t.pph)
WHERE (t.treelevel = (@@treelevel + 1))
SELECT @@rowsaffected = @@ROWCOUNT, @@treelevel = @@treelevel +
1 END -- WHILE
-- you could join on objid here to find the items affected
SELECT * FROM @@t ORDER BY treelevel, pph, name;
Jeff Clausius
SourceGear
SourceGear