
/* Indices für die Datenbank FKL der mobilen Datenerfassung
	wie das Skript der Hauptdatenbank

	2024-03-30	erstellt
	*/

use FKL
go

set nocount on
go
-- notwendig, damit Indices auf views erzeugt werden können:
set QUOTED_IDENTIFIER on
go

declare @ixName varchar(255), @tName varchar(25), @sName varchar(25)
declare tCur cursor for 
	select ix.name, o.name, s.name from sys.indexes ix 
		join sys.objects o on ix.object_id = o.object_id 
		join sys.schemas s on o.schema_id = s.schema_id
	where o.type = 'U' and ix.name <> o.name and o.name <> 'dtproperties' --and ix.name <> 't' + o.name
open tCur
fetch next from tCur into @ixName, @tName, @sName
while (@@fetch_status <> -1) begin
  exec ('drop index ' + @sName + '.' + @tName + '.' + @ixName)
  fetch next from tCur into @ixName, @tName, @sName
end
close tCur
deallocate tCur
go

-- aufräumen:
delete from k2ps_msel
where k2ps_mselID <> (
	select min(k2ps_mselID) 
	from k2ps_msel k 
	where k.k2ps_mselKatalog = k2ps_msel.k2ps_mselKatalog and k.k2ps_mselProbestelle = k2ps_msel.k2ps_mselProbestelle)
go

CREATE UNIQUE clustered INDEX X_LID ON GDT.Lokation(LID)
CREATE UNIQUE clustered INDEX X_AID ON GDT.Art(AID)
CREATE UNIQUE clustered INDEX X_PSID ON GDT.Probestelle(PSID)
go

/*
CREATE UNIQUE clustered INDEX X_AID ON GDV.Lokation(LID)
CREATE UNIQUE clustered INDEX X_PSID ON GDV.Probestelle(PSID)
CREATE unique clustered INDEX X_AID ON GDV.Art(AID)
CREATE UNIQUE clustered INDEX X_AID ON GDV.ArtGesamt(AID)
geht nicht wegen:
Meldung 1949, Ebene 16, Status 1, Zeile 48
Index für die FK.GDV.Lokation-Sicht kann nicht erstellt werden. Die host_name-Funktion führt zu nicht deterministischen Ergebnissen. Verwenden Sie eine deterministische Systemfunktion, oder ändern Sie die benutzerdefinierte Funktion, um deterministische Ergebnisse zurückzugeben.
*/


create index X_rwReferenz on referenzwert(rwReferenz)
go
create index X_rwAbschnitt on referenzwert(rwAbschnitt)
go
create index X_rwAbschnitt_rwReferenz on referenzwert(rwAbschnitt, rwReferenz)
go


create index X_zvkBenutzer on zv_kontext(zvkBenutzer)
go


 CREATE  UNIQUE  CLUSTERED  INDEX [pbcatedt_idx] ON [dbo].[pbcatedt]([pbe_name], [pbe_seqn]) ON [PRIMARY]
GO

 CREATE  UNIQUE  CLUSTERED  INDEX [pbcatfmt_idx] ON [dbo].[pbcatfmt]([pbf_name]) ON [PRIMARY]
GO

 CREATE  UNIQUE  CLUSTERED  INDEX [pbcatvld_idx] ON [dbo].[pbcatvld]([pbv_name]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKeinrichtung] ON [dbo].[einrichtung]([erID]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF26fangprot] ON [dbo].[fangprot]([fpFischart]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF27fangprot] ON [dbo].[fangprot]([fpProbestelle]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKfangprot] ON [dbo].[fangprot]([fpID]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF28fangprot_wiss] ON [dbo].[fangprot_wiss]([fpwFischart]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF34fangprot_wiss] ON [dbo].[fangprot_wiss]([fpwProbestelle]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKfangprot_wiss] ON [dbo].[fangprot_wiss]([fpwID]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKfischart] ON [dbo].[fischart]([fID]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKgebiets_kz] ON [dbo].[gebiets_kz]([gID]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF42k2ps_msel] ON [dbo].[k2ps_msel]([k2ps_mselProbestelle]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF43k2ps_msel] ON [dbo].[k2ps_msel]([k2ps_mselKatalog]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKk2ps_msel] ON [dbo].[k2ps_msel]([k2ps_mselProbestelle], [k2ps_mselKatalog]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKE_75] ON [dbo].[katalog]([kID]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [pbcatcol_idx] ON [dbo].[pbcatcol]([pbc_tnam], [pbc_ownr], [pbc_cnam]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [pbcattbl_idx] ON [dbo].[pbcattbl]([pbt_tnam], [pbt_ownr]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF23probestelle] ON [dbo].[probestelle]([psGebiets_kz]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF35probestelle] ON [dbo].[probestelle]([psEinrichtung_F]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF36probestelle] ON [dbo].[probestelle]([psEinrichtung_B]) ON [PRIMARY]
GO

 CREATE  INDEX [XIF47probestelle] ON [dbo].[probestelle]([psTKnr_name]) ON [PRIMARY]
GO

 CREATE  INDEX [X_psGemeinde] ON [dbo].[probestelle] ( [psGemeinde]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKprobestelle] ON [dbo].[probestelle]([psID]) ON [PRIMARY]
GO

 CREATE  UNIQUE  INDEX [XPKtknr_name] ON [dbo].[tknr_name]([tkID]) ON [PRIMARY]
GO


