1
からユーザー定義テーブル型を返すために、どのように私は、SQL Serverのユーザー定義テーブル型を作成:ストアドプロシージャ
Create Type dbo.Car AS Table
(
CarNumber varchar(20) not null,
Model varchar(20) null
)
が他の多くの分野がありますが、これは一例です。
今、このタイプの車のリストを返すために必要なストアドプロシージャがあります。ここに問題があります:ストアドプロシージャからユーザー定義のテーブル型を返す方法が見つかりません。
プロシージャ内のパラメータとして宣言する場合は、読み込み専用でなければならないため、値を割り当てることはできません。そして、もしこの型からvarを宣言して、それが許さないプロシージャから返そうとするならば。ここで
は、私が試したものです:
Create procedure getCarDetails
@carNumber varchar(20)
AS
BEGIN
SET NOCOUNT ON;
Declare @CarDetails AS dbo.Car
insert into @CarDetails (CarNumber,Model)
select CarNumber, Model
from cars
where cars.CarNumber = @carNumber
-- here I need to return the @CarDetails
-- if I try
-- return @CarDetails
-- It says 'must declare the scalar variable "@CarDetails"'
それを行うための正しい方法は何ですか?
あなたはちょうどこの '@ CarDetails'テーブルに挿入せず、選択をするか、またはあなたのインサートを維持して、これを行うことができますいずれか: 'select * from @ CarDetails'。 –