PDA

View Full Version : Exec ('dbo.MyFun')I> چرا غیر قابل استفاده است؟



کورش پدرام
سه شنبه 06 شهریور 1386, 15:33 عصر
من نام یک تابع را در یک متغیّر دارم ولی نمی توانم از آن استفاده کنم. مثلاً:


declare @str nvarchar(500)
declare @fun nvarchar(50)
set @fun = 'dbo.MyScalarFun()'
Select @str = exec (@fun) --?
Select @str = exec ('Select ' + @fun) --?

با سپاس از توجّه شما

supporter
چهارشنبه 07 شهریور 1386, 08:04 صبح
نگاهی به sp_executesql در Books Online بندازید شاید مشکلتون حل شد.

mopaliz
دوشنبه 06 آبان 1387, 13:32 عصر
DECLARE @SqlString nvarchar(255)
DECLARE @tabel nvarchar(255)
SET @tabel='jobs'
SET @sqlString = N'SELECT top 10 * from pubs..@TableName '
SET @SqlString =REPLACE(@sqlString,'@TableName', @tabel)
EXEC sp_executesql @SqlString

ASKaffash
دوشنبه 06 آبان 1387, 17:02 عصر
سلام
این کد را امتحان کنید :


Declare @fun nvarchar(50),@E VarChar(1000)
Set @Fun = 'dbo.MyScalarFun()'
Set @E ='Select '+@Fun
Exec(@E)