未在下面的列表中列出的语句不能用在函数主体中。 赋值语句。
控制流语句。
DECLARE 语句,该语句定义函数局部的数据变量和游标。
SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。
游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。
INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。
EXECUTE 语句调用扩展存储过程。 

解决方案 »

  1.   

    常规扩展过程 
    xp_cmdshell xp_logininfo 
    xp_enumgroups xp_msver 
    xp_findnextmsg xp_revokelogin 
    xp_grantlogin xp_sprintf 
    xp_logevent xp_sqlmaint 
    xp_loginconfig xp_sscanf 
      

  2.   

    Select dbo.GetNewId('tiaozaoshichan')
    那怎样让这句通过呢??
    急呀
      

  3.   

    sp_executesql
    是这个存储过程的事
    那怎么改呢??
    我要动态调用sql语句呀
      

  4.   

    如果你要这样,就用store procedure代替你的function,在store procedure中可以用exec
    直接运行一条sql语句。可是你可能要用两个store procedure才能达到你现在function的功能了^_^。
      

  5.   

    动态SQL不能在function中运行,换成存储过程吧。