一个自定义函数的问题。

york_lin 2003-05-19 01:50:38
接着问题:
http://expert.csdn.net/Expert/topic/1803/1803710.xml?temp=.9903681
函数如下:
CREATE FUNCTION GetMaxIDTemp (@tableName varchar(40),@tmp int)
RETURNS int
AS
begin
declare @MaxId bigint
declare @returnId bigint
declare @tmpId bigint
Select @MaxId = Max(id) from @tableName where substring(convert(nvarchar,id),1,1)= convert(varchar,@districtId)
return (@MaxId )
end

出现了
必须声明变量 '@tableName'。的错误
请教
...全文
11 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nik_Amis 2003-05-19
up
回复
mjhnet 2003-05-19
准确的说,函数不支持系统存储过程在其内部运行
回复
19191919 2003-05-19
函数中目前不支持动态语句。只能在存储过程中写
回复
york_lin 2003-05-19
楼上的好想不对啊
在函数里面就不能执行动态的吗
回复
yoki 2003-05-19
必须用动态语句
exec' Select @MaxId = Max(id) from '+@tableName +'
where substring(convert(nvarchar,id),1,1)= convert(varchar,@districtId)'
回复
pengdali 2003-05-19
不行!在函数里不行!

你只能在过程里:

Create Procedure GetMaxID
@TableName varchar(100), @ID int output
as
begin
declare @sql nvarchar(1000)
set @sql='select @ID = max(ID) from '+@TableName
exec sp_executesql @sql,N'@id int output',@id output
end
回复
york_lin 2003-05-19
错了语句为
Select @MaxId = Max(id) from @tableName where substring(convert(nvarchar,id),1,1)= convert(varchar,@tmpid)
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-19 01:50
社区公告
暂无公告