USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_search] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_vertragselement_search] GO /****** Object: StoredProcedure [dbo].[sp_vertragselement_search] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE proc [dbo].[sp_vertragselement_search] @query varchar(1000), @fnkt int, @mitarbeiternr int as SET NOCOUNT ON declare @SQLWhere varchar(4096), @xsql varchar(4096) set @sqlwhere = '' -- Suche nach Vertragspartner.NameZ1 if @fnkt=0 begin set @sqlwhere = ' vertragspartner.namez1 like ' + + char(39) + '%' + @query + '%' + char(39) set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, ' set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum, dbo.vertragselement.nummer ' set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN ' set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ' set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung ' exec(@xsql) return end -- Suche nach Vertragselement.Bezeichnung if @fnkt=1 begin set @sqlwhere = ' vertragselement.bezeichnung like ' + + char(39) + '%' + @query + '%' + char(39) set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, ' set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum, dbo.vertragselement.nummer ' set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN ' set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ' set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung ' exec(@xsql) return end -- Suche nach Vertragselement.Inhalt if @fnkt=2 begin set @sqlwhere = ' vertragselement.Beschreibung like ' + + char(39) + '%' + @query + '%' + char(39) set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, ' set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum ' set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN ' set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ' set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung ' exec(@xsql) return end -- Suche nach Vertragselement.Suchbegriffe if @fnkt=3 begin set @sqlwhere = ' vertragselement.suchbegriffe like ' + + char(39) + '%' + @query + '%' + char(39) set @xsql='SELECT dbo.vertragselement.vertragselementnr, dbo.Vertragspartner.NameZ1 + ' + char(39) + ' ' + char(39) + ' + dbo.Vertragspartner.NameZ2 +' + char(39) + ', ' + char(39) + '+ dbo.Vertragspartner.Ort AS Vertragspartner, dbo.Vertragstyp.Vertragstyp, ' set @xsql=@xsql+' dbo.Vertragselement.Bezeichnung, dbo.Vertragselement.Version, dbo.Vertragselement.Versionsdatum ' set @xsql=@xsql+' FROM dbo.Vertragselement INNER JOIN dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN ' set @xsql=@xsql+' dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ' set @xsql=@xsql+' where dbo.vertragselement.securitylevelnr<=dbo.get_securitylevel('+str(@mitarbeiternr)+') and ' + @sqlwhere + ' order by vertragselement.bezeichnung ' exec(@xsql) return end GO