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

t-sql wywyłanie w proccedurze procedury z paranetrem

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

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
0

Odpowiedz - przykład:

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;
0

Pomine fakt ze nie widze sensu tego co robisz

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);

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