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

SQL Script ...


Finden doppelter Datensätze:

SQL Script ...


????

SQL Script ...


????

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 !!

SQL Script ...


Tabelle erweitern

SQL Script ...


Abgleich IDW in DOCUMENT

SQL Script ...


Abgleich IDW in ELEMENT

SQL Script ...


Trigger Update Status

SQL Script ...


SET_FILE_SHARE_WITH

SQL Script ...


InsertDocumentsIntoAllLocations

SQL Script ...


Repl Status

SQL Script ...


Einsame IPTs

SQL Script ...


Aufheben der Replikation

SQL Script ...


Abgleich Karten 1.1

SQL Script ...


Frei

SQL Script ...


Frei

SQL Script ...