PDA

View Full Version : سوال: خود رکوردي يک کيوئري



ARData
یک شنبه 05 تیر 1390, 14:47 عصر
آيا يک کيوئري مي تونه با يه کدي تا تعداد محدودي خود رکوردي کنه ؟ يعني يه فرمولي به کيوئري بديم که در خودش تا يه حدي مثلا تا 10 رکورد خودش رکورد ايجاد کنه مثل قانون حلقه و تايمرها در فرم ؟

mazoolagh
دوشنبه 06 تیر 1390, 21:40 عصر
در اکسس نمیشه ولی در sql شدنی هست

ARData
سه شنبه 07 تیر 1390, 10:13 صبح
ميشه در صورت امکان کد اس کيو الي رو اينجا قرار بدين ؟

mazoolagh
چهارشنبه 08 تیر 1390, 23:16 عصر
بله - حتما
کد پایین برای شما یک فانکشن بنام FX میسازه که مقدار برگشتی اون یک جدول هست (@tmp_table) که یک فیلد از نوع int بنام fld_1 داره.

یک متغیر از نوع int بنام @i بعنوان شمارنده حلقه داریم. حلقه 10 بار اجرا میشه و هر مقدار @i در یک رکورد جدید در فیلد fld_1 میشینه.

نهایتا هم جدول @tmp_table بعنوان مقدار تابع برمیگرده.


CREATE FUNCTION FX()
RETURNS @tmp_table TABLE (fld_1 int)
AS
BEGIN
DECLARE @i int
SET @i=0
WHILE (@i<10)
BEGIN
SET @i=@i+1
INSERT INTO @tmp_table (fld_1) VALUES (@i)
END
RETURN
END


برای اجرای تابع هم بصورت زیر عمل میکنیم:

SELECT * FROM FX()