sql-server - TRY_PARSE 使函数非确定性

标签 sql-server

我想让计算列持久化,但 TRY_PARSE 使我的函数变得非确定性。我可以用它做点什么吗?有替代品吗?

CREATE FUNCTION [dbo].[F] 
(
    @input nvarchar(100)
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
    return TRY_PARSE(@input as INT)
END


SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[F]'), 'IsDeterministic')

最佳答案

改用TRY_CONVERT:

CREATE FUNCTION [dbo].[F] 
(
    @input nvarchar(100)
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
    return TRY_CONVERT(INT,@input)
END


SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[F]'), 'IsDeterministic')

关于sql-server - TRY_PARSE 使函数非确定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40421748/

相关文章:

sql - 在 FULL OUTER JOIN 中选择非空列

sql - JSON 到 SQL 变量字符串

sql - 仅选择包含值的列

sql - 调试发现错误 "Error converting data type varchar to real"

sql-server - SQL Server XML 查询错误输出

SQL 嵌套 CASE 语句

asp.net - 批量发送数据到存储过程

用于非冗余目的的 SQL Azure 地理复制

sql-server - UPDATE 后的 @@ROWCOUNT 是否可靠地衡量*匹配*行?

sql-server - SQL 中竖线/竖线字符的含义是什么?