Deklaracja zmiennej tymczasowej

0

Witam.
Jak zapisać deklaracje zmiennych tymczasowych dla zapytania INSERT INTO :

INSERT INTO [SCADA].[dbo].[SUW_d] (praca_pg,pg1_czp)
 VALUES ('"+praca_gp+"','"+IntToStr(pg1_czp)+"')

gdzie: praca_pg nvarchar(20) a pg1_czp int
Wiem że do wpisania wartości mogę użyć tak:


DECLARE @praca_pg nvarchar(20)
    , @pg1_czp int

    SELECT 
     @praca_pg ='10'
    , @pg1_czp = '20'   

INSERT INTO [SCADA].[dbo].[SUW_d] (praca_pg,pg1_czp)
 VALUES (@praca_pg,@pg1_czp)

ale nie o to mi chodzi
tzn. efekt chcę miec taki sam ale nie zmieniając w lini VALUES ('"+praca_gp+"','"+IntToStr(pg1_czp)+"')

0

w mssqlu nie ma IntToStr więc jak byś nie kombinował to w takiej postaci nie przejdzie

0

tzn. efekt chcę miec taki sam ale nie zmieniając w lini VALUES ('"+praca_gp+"','"+IntToStr(pg1_czp)+"')

Nazwy zmiennych muszą zaczynać się od @ więc już tak się nie da, inttostr musisz zamienić na cast/convert lub napisać funkcje skalarną która zrobi konwersje:

CREATE FUNCTION [dbo].[IntToStr] 
    (@i int)
RETURNS varchar(100)
AS
BEGIN
    RETURN cast(@i as varchar(100))
END

i użyć tak:

dbo.IntToStr(@pg1_czp)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0