PDA

View Full Version : روال در اس کیو ال



damanpak
یک شنبه 17 اردیبهشت 1391, 11:43 صبح
سلام به دوستان برنامه نویس

میخواستم بدونم چرا نمیشه نام جدول رو به عنوان پارامتر در روال زیر قرار بدم و روال رو بسازم؟


create function rndids(@nfld nchar(35))
returns table
as
return
select * from @ntbl
END

SReza1
یک شنبه 17 اردیبهشت 1391, 12:38 عصر
در نوشتن function بهر حال يه محدوديتهايي وجود دارد و نميشه به صورت dynamic بتوني select بزني . اگه نياز نيست حتما از فانكشن استفاده كني از پروسيجر استفاده كن. مثل زير :


CREATE PROCEDURE [dbo].[usp_SELECTTable](@TableName VARCHAR(255)) AS

EXEC('SELECT * FROM '+ @TableName)

GO


--Exp :

[dbo].[usp_SELECTTable] 'Table1'



البته اگه بخواهي ميتوني در run time به صورت dynamic ، تابع create بكني ولي راه خوبي نيست و بايد يا تعداد زيادي تابع ايجاد كني و يا يك تابع رو مرتب alter كني و روي اون كد بنوسيي كه روي برنامه‌هاي چند كاربره اصلا جواب نميده

damanpak
دوشنبه 18 اردیبهشت 1391, 00:19 صبح
من همچنان منتظر جواب دوستان هستم اگه راهی هست ممنون میشم راهنماییم کنید