Deklaracja zmiennej tymczasowej

Deklaracja zmiennej tymczasowej
WR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

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

Kopiuj
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:

Kopiuj

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)+"')

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

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

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
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:

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

i użyć tak:

Kopiuj
dbo.IntToStr(@pg1_czp)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.