Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQLServer函数中执行动态sql并返回标量值_Sql Server_Tsql - Fatal编程技术网

Sql server 如何在SQLServer函数中执行动态sql并返回标量值

Sql server 如何在SQLServer函数中执行动态sql并返回标量值,sql-server,tsql,Sql Server,Tsql,请告诉我如何将序列号返回到其调用环境,使sql动态内部函数不存储过程。简单,您不能。函数内部没有动态SQL。如果需要在用户定义函数@Damien\u中使用动态SQL,请使用存储过程。\u函数中不支持动态SQL吗?为什么说函数中没有动态SQL?这不是动态SQL。然而,您似乎正在尝试创建自己的自动增量机制。这将在多用户环境中失败。您应该使用常规的identity列,并在选择数据时创建字符串表示,或者创建一个为您执行此操作的计算列(也可以是持久化计算列)。有关更多信息,请阅读 Create funct

请告诉我如何将序列号返回到其调用环境,使sql动态内部函数不存储过程。

简单,您不能。函数内部没有动态SQL。如果需要在用户定义函数@Damien\u中使用
动态SQL,请使用
存储过程
。\u函数中不支持动态SQL吗?为什么说函数中没有动态SQL
?这不是动态SQL。然而,您似乎正在尝试创建自己的自动增量机制。这将在多用户环境中失败。您应该使用常规的
identity
列,并在选择数据时创建字符串表示,或者创建一个为您执行此操作的计算列(也可以是持久化计算列)。有关更多信息,请阅读
Create function NextCustomerNumber
(
    @TABLE_NAME varchar(20)
)
returns varchar(10)
as
begin

    declare @lastval varchar(10)
    set @lastval = right('000000000' + convert(varchar(10),(select IsNull(max(Serialno),0)+1 from TestSerialNo)),10)
    return @lastval
end