create function funMy(@quantity int)
returns table
as 
return (select top (@quantity) * from useGO )为什么(@quantity)这里一定要加个括号,否则就报错?

解决方案 »

  1.   

    括号是一种表达式,否则sql编译器不认识
      

  2.   

    SQL SERVER 2005以后的语法 要是用SQL SERVER 2000加括号都不行
      

  3.   


    -- 对的
    select top 1 name from sys.tables 
    go
    -- 对的
    select top (1) name from sys.tables 
    go
    -- 错误,如果不加 () ,会把 @n 当做一个返回列,这样一来 top 就没用了
    declare @n int = 1
    select top @n name from sys.tables
    go
    -- 这个是正确用法
    declare @n int = 1
    select top (@n) name from sys.tables 
    go
      

  4.   

    谢谢wmxcn2000版主!