SQL 2017/19:COMPATIBILITY_LEVEL +设置FMTONLY ON [英] SQL 2017/19: COMPATIBILITY_LEVEL + SET FMTONLY ON
问题描述
USE master
GO
CREATE DATABASE测试
GO¥ b $ b
USE测试
GO
创建功能dbo.fnTest()
RETURNS @T表(id INT)
AS
BEGIN
INSERT INTO @T
SELECT 1
退货
结束
GO
ALTER DATABASE测试
SET COMPATIBILITY_LEVEL = 140
GO
SET FMTONLY ON;
SELECT * FROM dbo.fnTest()
SET FMTONLY OFF;
GO
< br $>
USE master
GO
DROP DATABASE测试
GO
此脚本适用于 COMPATIBILITY_LEVEL = 130但无法使用 COMPATIBILITY_LEVEL = 140和150
我的意思是它仅在 COMPATIBIL时返回结果ITY_LEVEL = 130
这是一个错误吗?
您好Siarhei.Kruk,
SET FMTONLY 。
请看一下:
USE master
GO
CREATE DATABASE test
GO
USE test
GO
CREATE FUNCTION dbo.fnTest()
RETURNS @T table (id INT)
AS
BEGIN
INSERT INTO @T
SELECT 1
RETURN
END
GO
ALTER DATABASE test
SET COMPATIBILITY_LEVEL = 140
GO
SET FMTONLY ON;
SELECT * FROM dbo.fnTest()
SET FMTONLY OFF;
GO
USE master
GO
DROP DATABASE test
GO
This script works with COMPATIBILITY_LEVEL = 130 but doesn't work work with COMPATIBILITY_LEVEL = 140 and 150
I mean it returns result only if COMPATIBILITY_LEVEL = 130
Is it a bug?
Hi Siarhei.Kruk,
The SET FMTONLY was deprecated.
Please take a look here:
这篇关于SQL 2017/19:COMPATIBILITY_LEVEL +设置FMTONLY ON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!