Hejsan,
felmeddelande:
Server: Msg 137, Level 15, State 2, Procedure getChefer, Line 30
Must declare the variable '@enh_avd_pl'.
Server: Msg 137, Level 15, State 1, Procedure getChefer, Line 34
Must declare the variable '@enh_avd_pl'.
Use Personal
GO
IF OBJECT_ID('dbo.getChefer') IS NOT NULL
DROP PROC dbo.getChefer
GO
CREATE PROCEDURE dbo.getChefer
@enhets_id int -- incoming parameter
AS
declare @isAvdelning int -- store result from SP isAvdelningEnhet
declare @enh_avd_sg varchar(60) -- enhet / avdelning (singular)
declare @enh_avd_pl varchar(60) -- enheter / avdelningar (plural)
declare @enh_avd_chef varchar(20) -- enhetschef / avdelningschef
EXECUTE @isAvdelning = isAvdelningEnhet
IF @isAvdelning = 1 -- ex 378
BEGIN
SELECT @enh_avd_sg = 'avdelning'
SELECT @enh_avd_pl = 'avdelningar'
SELECT @enh_avd_chef = 'avdelningschef'
END
ELSE IF @isAvdelning = 2 -- ex 561
BEGIN
SELECT @enh_avd_sg = 'enhet'
SELECT @enh_avd_pl = 'enheter'
SELECT @enh_avd_chef = 'enhetschef'
END
-- selecting compete info about enhetschefer or avdelningar
SELECT per.id, per.e_namn, per.f_namn, per.telefon, @enh_avd_sg, chefstitel FROM personal per
INNER JOIN @enh_avd_pl ON @enh_avd_chef = per.id
WHERE id IN
(
SELECT @enh_avd_chef FROM @enh_avd_pl
WHERE @enh_avd_chef IS NOT NULL
)
AND id = @enhets_id
ORDER BY per.e_namn
GO
Om det är annat som är galet i upplägget får ni gärna påpeka för jag har ingen känsla för det här.. :) Dessutom läste jag att när man kör EXEC i SP:n så drar det ner prestandan..? Eller är det vilket som om jag kör allt i en enda SP eller kan man dela upp det i några olika SP så att varje SQL sats är en egen SP och att det blir snabbare på så sätt...?