PDA

View Full Version : کار با StoredProcedure ؟



alireza_rashvand
دوشنبه 28 مرداد 1392, 11:14 صبح
سلام
کسی هستد با StoredProcedure حرفه ای کار کرده باشه؟
سوال:
در StoredProcedure , جدول مجازی ایجاد کردم

declare @ReturnTable TABLE

حالا می خوام StoredProcedure ی رو فراخوانی کنم مقدار این جدول را به او پاس بدم .
اگه نامفهوم بود بگید بیشتر توضیح بدم.
سپاس

alireza_rashvand
دوشنبه 28 مرداد 1392, 13:37 عصر
جواب رو خودم پیدا کردم اگه دوستان خواستند بگند

in_chand_nafar
دوشنبه 28 مرداد 1392, 15:00 عصر
TVP از اين قابليت استفاده كنيد.
قابليت TVP از نسخه 2008 به بعد در SQL Server اضافه شده است
TVP : Table Variable Parameter

alireza_rashvand
چهارشنبه 30 مرداد 1392, 13:37 عصر
سلام .
میشه بیشتر توضیح بیدی.

Salah Sanjabian
چهارشنبه 30 مرداد 1392, 21:31 عصر
سلام . به این صورته که شما یه مقدار از نوع جدول به پروسیجرت پاس میدی به مثال زیر توجه کن
یه جدول داریم به اسم Sample که دو ستون داره که ID از نو INT و IDENTITY هم هست و Name که از نوع کاراکتر هست
بعد یه نوع Type جدید که از نوع جدول هست رو میسازیم ، و بعد از اون پروسیجرموردنظر که پارامتر ورودی اون همین Type جدید هست که در بدنه پروسیجر فرضا کل داده هایی که تو این پارامتر ورودی هست باید به جدول Sample اینسرت بشه
نمونه کد رو میتونی تست کنی

CREATE TABLE Sample
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(30)
)
GO
CREATE TYPE SampleType AS TABLE
(
Id INT IDENTITY(1,1), Name VARCHAR(30)
);
GO

CREATE PROCEDURE InsertSample
@Table SampleType READONLY
AS
INSERT INTO Sample(Name)
SELECT Name FROM @Table;

GO

DECLARE @VarSample AS SampleType;

INSERT INTO @VarSample(Name)
VALUES
('Arash'),
('Milad'),
('Mohammad')


EXEC InsertSample @VarSample;
GO

کل داده هایی که تو VarSample@ هست اضافه میشه به جدول Sample