2014-08-28 2 views
2

В первой хранимой процедуры testList определяется пользователем тип таблицыПреобразование ввода char в пользовательский тип таблицы и вызов одной хранимой процедуры из другой хранимой процедуры?

CREATE PROCEDURE [working].[test1] (@input1 int, @input2 testList READONLY) AS 
BEGIN 

// do some working 

END 
GO 

CREATE PROCEDURE [working].[test2] (@input3 int, @input4 char) AS 
BEGIN 

// How can i convert char input4 to user defined table input testList 
// I want to do that conversion because ,here i want to call stored procedure test1 

EXEC [working].[test1] @input1 = @input3 , @input2 = CAST(@input4 AS testList); 

// is this correct way to call ? 

END 
GO 
+0

Zimmermann @ Тим: Спасибо за изменения. – S52

ответ

1
CREATE PROCEDURE [working].[test2] 
    @input3 int, 
    @input4 CHAR(N) 
AS 
BEGIN 
    SET NOCOUNT ON; 

-- Declare a table variable of testList type 

DECLARE @Table_Var AS testList; 

-- Populate the table variable with value passed to @input4 

INSERT INTO @Table_Var (ColumnName) 
VALUES (@input4) 


-- Now pass this table variable to your procedure 

EXEC [working].[test1] @input1 = @input3 
        , @input2 = @Table_Var 

END 
GO 
+0

Спасибо за ваш ответ. Но что вы подразумеваете под табличной схемой переменных? – S52

+0

Извините, это то, что вы определили при создании самого типа. Единственная проблема, с которой вы сейчас сталкиваетесь, заключается в том, что вы не можете преобразовывать переменную '@ input4' в свой пользовательский тип данных. –

+0

Вам нужно будет объявить переменную этого определенного типа таблицы, а затем заполнить ее значениями, переданными переменной '@ input4'. –

Смежные вопросы