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