Project

General

Profile

Compass SQL - Scripte

Anbei eine Auflistung nützlicher SQL Scripte im Compass Umfeld.
Die Scripte sind als Beispiel anzusehen !
Der Einsatz erfolgt aus eigenen Gefahr !!

Papierkorb löschen


Finden doppelter Datensätze:


????


????

select count() from (select count() num from part group by ident)
where num > 1


????

select sum(num-1) from (select count(*) num from part group by ident) where num > 1


alles übertragen von ALT nach NEU (gleiche Struktur):

INSERT into NEU select * from ALT


????

exec sp_changeobjectowner '[COMPASS].[aim_RPF_element]','dbo'
exec sp_changeobjectowner '[COMPASS].[aim_RPF_xref_element]','dbo'


Finden aller (mehrfachen) IDENT mit REVISION = 1 oder 01

SELECT * FROM
DOCUMENT
WHERE
IDENT IN (
SELECT d.IDENT
FROM DOCUMENT d
WHERE ISNUMERIC=1
AND IDENT IN (
SELECT IDENT
FROM DOCUMENT
GROUP BY IDENT
HAVING COUNT>1
)
GROUP BY IDENT, CAST
HAVING count(1)>1
)


Liste aller Komponenten die in einer Baugruppe verbaut sind mit Statuskey00003:

select * from VIEW_DOCUMENT_ENGINEERING where STATUSKEY<>'00003' and AIMKEY in (select X_CHILD_AIMKEY from VIEW_XREF_PARENT_DOCUMENT where X_RELATIONSHIP_ID='AIM.XREF.DOC.ENG' and STATUSKEY='00003')

select PART_NUMBER, STATUSKEY
from VIEW_DOCUMENT_ENGINEERING
where STATUSKEY<>'00003' and AIMKEY in (select X_CHILD_AIMKEY
from VIEW_XREF_PARENT_DOCUMENT
where X_RELATIONSHIP_ID='AIM.XREF.DOC.ENG' and STATUSKEY='00003')


Alles was NULL (Leer) Ist aus der REVISION Aufliste

SELECT REVISION FROM DOCUMENT   
WHERE REVISION IS NULL
ORDER BY REVISION
---

Und auf Startwert 00 setzen

UPDATE DOCUMENT 
SET REVISION = '00'
WHERE REVISION IS NULL

Datenbak reparieren

Folgenden Script ermitteln Sie die fehlerverdächtige Datenbank(en) auf dem Server:

SELECT DBName=NAME, [Status]=state_desc
FROM master.sys.databases
WHERE state_desc='SUSPECT'

Im nächsten Schritt setzen Sie bringen Sie die Datenbank in den Notfallmodus, setzen dann
Zugriff auf EInzelbenutzermodus und führen ein Prüfung der Datenbank durch:

USE master;
GO

ALTER DATABASE [DATABASENAME] SET EMERGENCY
GO

ALTER DATABASE [DATABASENAME] SET SINGLE_USER
GO

DBCC CHECKDB ([DATABASENAME], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
GO

Anschließend wird nochmals eine Prüfung der Datenbank durchgeführt:

USE [DATABASENAME]
GO

DBCC CHECKDB WITH NO_INFOMSGS;
GO

Wenn diese letzte Prüfung fehlerfrei ausgeführt wurde, befindet sich die Datenbank immer
noch im Einzelbenutzermodus. Die Modus Umschaltung auf den Mehrfachbenutzermodus wird mit
folgendem Script durchgeführt:

USE master;
GO

ALTER DATABASE [DATABASENAME] SET MULTI_USER
GO


????

update ELEMENT set ENTITY_TYPE='AIM.DOC.ENG.STD' where AIMKEY in (
select AIMKEY from DOCUMENT where upper(FILE_LINKNAME) like '\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE%')
update DOCUMENT set FILE_LINKNAME = replace(upper(FILE_LINKNAME),'\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE','#(INI:Inventor:StdPartPath_1)') where upper(FILE_LINKNAME) like '\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE%'


CheckCompass

Check aller Tabellen gegen die ELEMENT

Für alle Tabellen ( DOCUMENT / PART /.... ) muss es einen Eintrag auf in der ELEMENT geben
oder
Für alle Einträge in ELEMENT mit AIM.XXX.* muß es einen Eintrag in der entsprechenden Tabelle geben
Die gelistet Einträge müssen aus der ELEMENT, XREF_ELEMENT, DOCUMENT, HISTORY_DOCUMENT raus ( AIM_SAVE Error )

Wenn Replikator auch REPL prüfen !!


Tabelle erweitern


Abgleich IDW in DOCUMENT


Abgleich IDW in ELEMENT


Trigger Update Status


SET_FILE_SHARE_WITH


InsertDocumentsIntoAllLocations


Repl Status


Einsame IPTs


Aufheben der Replikation


Abgleich Karten 1.1


Frei


Frei


Add picture from clipboard (Maximum size: 488 MB)