USE [Vertragsverwaltung_20160404] GO /****** Object: StoredProcedure [dbo].[sp_lc_get_kopien] Script Date: 02.12.2016 09:08:53 ******/ DROP PROCEDURE [dbo].[sp_lc_get_kopien] GO /****** Object: StoredProcedure [dbo].[sp_lc_get_kopien] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_lc_get_kopien] @original INT, @fnkt INT = 0, @result INT=0 output AS BEGIN DECLARE @t1 TABLE(copykey INT, parentnr int, bezeichnung VARCHAR(1024)) DECLARE @bez VARCHAR(255) SELECT @bez=bezeichnung FROM dbo.LC_Produkt WHERE LC_ProduktNr=@original INSERT @t1 SELECT lc_produkt_copynr, lc_produkt_parentnr, @bez FROM dbo.LC_Produkt_Copy WHERE aktiv=1 AND lc_produktnr=@original declare @lcnr int DECLARE @pnr INT DECLARE @p1 INT DECLARE @b1 VARCHAR(255) DECLARE @i int DECLARE xc CURSOR FOR SELECT * FROM @t1 OPEN xc FETCH NEXT FROM xc into @lcnr, @pnr, @bez WHILE @@fetch_status=0 BEGIN SET @i=1 SET @p1=@pnr WHILE @i=1 BEGIN SELECT @b1=bezeichnung,@p1=lc_produktnr_parent FROM lc_produkt WHERE lc_produktnr=@p1 IF @@rowcount=0 BEGIN SET @i=0 END ELSE BEGIN SET @bez=@b1+' / ' + @bez END END UPDATE @t1 SET bezeichnung=@bez WHERE copykey=@lcnr FETCH NEXT FROM xc into @lcnr, @pnr, @bez END CLOSE xc DEALLOCATE xc IF @fnkt=1 BEGIN SELECT @result=COUNT(*) FROM @t1 END ELSE begin SELECT copykey, parentnr, bezeichnung as Element FROM @t1 END END GO