/*
**************************************************************************
**Stored Procedure som importerar data till en temporär tabell.**
**************************************************************************
*/
CREATE PROCEDURE tempTabell
@AnvId varchar(20), @Ar varchar(4), @Ar2 varchar(4)
AS
Declare @TmpTbl varchar(10), @strSQL nvarchar(255), @i int, @Värde1 varchar(15), @Värde2 varchar(15), @Värde3 varchar(15), @Värde4 varchar(15)
--Sätt Vilken temporär tabell som skall användas
select @TmpTbl = "tmp" + @AnvId
--Om TabellNamnet innehåller '-' så ta bort det.
select @TmpTbl = replace(@TmpTbl, '-', '')
--Om användaren inte har en temporär tabell så skapa en
if not exists (Select name from sysobjects where name = @TmpTbl)
begin
select @strSQL = 'Create Table ' + @TmpTbl +'
([1] nvarchar(50),
[2] nvarchar(50),
[3] nvarchar(50),
[4] nvarchar(50),
[5] nvarchar(50),
[6] nvarchar(50),
[7] nvarchar(50),
[8] nvarchar(50))'
exec(@strSQL)
end
--Rensa temporära tabellen
select @strSQl = 'Delete ' + @TmpTbl
exec(@strSQL)
--Sätt en variabel att räkna med ;-)
select @i = 1
--Räkna igenom variablen i 12 ggr
while (@i <>13)
Begin
--Hämta värden till variablerna
Select @Värde1 = (select v1 From TestVärden Where År = @Ar AND månad = @i)
Select @Värde2 = (select v2 From TestVärden Where År = @Ar AND månad = @i)
Select @Värde3 = (select v1 From TestVärden Where År = @Ar2 AND månad = @i)
Select @Värde4 = (select v2 From TestVärden Where År = @Ar2 AND månad = @i)
--Lägg in variablerna i vald temporär tabell
select @strSQL = 'Insert into ' + @TmpTbl + ' ([1],[2],[3],[4]) Values (' +isnull(@värde1,'0') + ',' + isnull(@Värde2,'0') + ',' + isnull(@värde3,'0') + ',' + isnull(@Värde4,'0') +')'
exec(@strSQL)
--Lägg till '1' till variablen @i
select @i = @i +1
end
--Visa datan som importerats
select @strSQL ='Select [1], [2], [3], [4] From ' + @TmpTbl
exec(@strSQL)