没有
可以组合字符串,然后exec之

解决方案 »

  1.   

    declare @strtable nvarchar(30)
    declare @s nvarchar(4000)
    declare @n int
    set @s=N'select @n=count(*),.. from '+@strtable+N' where ...'
    exec sp_executesql @s,N'@n int out',@n out
    select @n
      

  2.   

    declare @strtable varchar(30)
    declare @n int
    declare @sql Nvarchar(200)
    set @strtable='表名'
    set @sql=N'select @n=count(*),.. from '+@strtable+' where ... '
    exe sp_executesql @sql,N'@n int output',@n output
    select @n
      

  3.   

    ^_^我也做过这样的幻想:给一个函数传入表名或字段名之类的
    但事实证明是不行的。
    因为CREATE FUNCTION 中的 EXECUTE 语句只能调用扩展存储过程,其他的就做不了了。