mssql的函数中如何在执行动态的查询语句
ALTERFUNCTION[dbo].[fun_seq](@seqNameVARCHAR(50))--作者:***版本:1.0编写时间:2013-8-13修改人:修改日期...
ALTER FUNCTION [dbo].[fun_seq] ( @seqName VARCHAR(50) )
--作者:*** 版本:1.0 编写时间:2013-8-13 修改人: 修改日期:
--修改内容:
--功能描述:传入一序列名,返回
RETURNS BIGINT
AS
BEGIN
DECLARE @sql NVARCHAR(200) ,
@reSult BIGINT
--EXEC [getSeq] @seqName;--调用存储过程不行
SET @sql = 'select top 1 @reSult=' + @seqName
+ ' from seq order by id';
EXEC sp_executesql @sql, @reSult OUTPUT
-- select top 1 @reSult=seq from seq order by id --如果写成这样,就可以,但动态的查询语句用了exec就是不行
RETURN @reSult;
END
--测试调用:
/*
select dbo.fun_seq 'seq'--调用也不行
*/ 展开
--作者:*** 版本:1.0 编写时间:2013-8-13 修改人: 修改日期:
--修改内容:
--功能描述:传入一序列名,返回
RETURNS BIGINT
AS
BEGIN
DECLARE @sql NVARCHAR(200) ,
@reSult BIGINT
--EXEC [getSeq] @seqName;--调用存储过程不行
SET @sql = 'select top 1 @reSult=' + @seqName
+ ' from seq order by id';
EXEC sp_executesql @sql, @reSult OUTPUT
-- select top 1 @reSult=seq from seq order by id --如果写成这样,就可以,但动态的查询语句用了exec就是不行
RETURN @reSult;
END
--测试调用:
/*
select dbo.fun_seq 'seq'--调用也不行
*/ 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询