语法错误,错在那里?
create function getTable(@topNumber int)
returns Table
as
return(select top @topNumber * from tablename)
创建这样一个函数,错误提示: '@topNumber ' 附近有语法错误。
是不是top 后面要跟数字的原因?我把@topNumber 换成常量如20就可以了
要实现这个函数应该怎么写
[解决办法]
create function getTable(@topNumber int)
returns Table
as
return(exec( 'select top '+ @topNumber + ' * from tablename ')
[解决办法]
top后面不能跟@topNumber,要将 select top @topNumber * from tablename 写成字符串,exec执行才行。
exec( 'select top ' + cast(@topNumber as varchar) + ' * from tablename ')
[解决办法]
上各位,函可以使用句?
改用存程
create Procedure getTable(@topNumber int)
as
exec( 'select top ' + @topNumber + ' * from tablename ')
GO
[解决办法]
也可以不用动态语句,如下
create PROCEDURE getTable
@topNumber int=10
as
set rowcount @topnumber -- 设置受影响的行数
select * from tablename
go