语法错误,错在那里?
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