t-sql wywyłanie w proccedurze procedury z paranetrem

t-sql wywyłanie w proccedurze procedury z paranetrem

Wątek przeniesiony 2020-02-21 14:11 z Algorytmy i struktury danych przez ŁF.

JO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

kompilacja procedury TST kończy się błędem, gdyż nie radzi sobie z parametrem w "uszach: EXEC moja_procedura 'osobowe', '@KOD_PLEC2 tinyint'
jak go prowidłowo zdefiniować,aby można go "wsadzić w uszy"? @KOD_PLECTO np wartość 2

Kopiuj
CREATE PROCEDURE TST
(@KOD_PLEC tinyint,
	@JAKIS_TAM_INNY_PARAMETR VARCHAR(100)
	)
AS
BEGIN
.....

DECLARE @KOD_PLEC2 tinyint


SET @KOD_PLEC2 = 'KOD_PLEC-' @KOD_PLEC
EXEC moja_procedura 'tabela', 'kolumna type'
EXEC moja_procedura 'osobowe', '@KOD_PLEC2 tinyint'

...
END
JO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Odpowiedz - przykład:

Kopiuj
DECLARE @KOD_A varchar(100)
DECLARE @KOD_A3 varchar(100)
DECLARE @KOD_A3_2 varchar(100)

SET @KOD_A = '1';
SET @KOD_A3 = @KOD_A;

SET @KOD_A3_2 = ''+'KOD_A_'+@KOD_A3+' '+'tinyint';

PRINT @KOD_A3_2;
ipsd
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: London
0

Pomine fakt ze nie widze sensu tego co robisz

Kopiuj
DECLARE @KOD_PLEC TINYINT;
DECLARE @KOD_PLEC2 VARCHAR(255);

SET @KOD_PLEC = 1;
SET @KOD_PLEC2 = 'KOD_PLEC-' + CAST(@KOD_PLEC AS VARCHAR(2));

DECLARE @sql VARCHAR(MAX);

SET @sql = 'EXEC moja_procedura ''osobowe'', ''' + @KOD_PLEC2 + '  tinyint''';

EXEC (@sql);

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.