Я получаю частые ошибки в коде, где написано
CustomerSales не является опознанной опцией табличных подсказок. Если он предназначен в качестве параметра для табличной функции, убедитесь, что для режима совместимости базы данных установлено значение 90.
Это произошло с несколькими другими таблицами, например, Hires, CustomerNumbers и т. Д. c.
Я натолкнулся на это предложение в Google, но я не уверен, что это лучшее, что можно сделать? Или что могло быть причиной ошибки в первую очередь?
Может ли кто-нибудь сообщить, что может вызвать этот тип ошибки и лучшее решение?
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15
Пример кода, с которым я получаю сообщение об ошибке:
WITH CustomerAges AS
(
SELECT
P.FirstName, P.LastName,
FLOOR (DATEDIFF(DAY, PD.BirthDate, GETDATE()) / 365.25) AS AGE
FROM
Sales.vPersonDemographics PD
INNER JOIN
Person.Person P ON P.BusinessEntityID = PD.BusinessEntityID
)
SELECT
*,
CASE
WHEN Age IS NULL THEN 'Unknown Age'
WHEN Age BETWEEN 0 and 17 THEN 'Under 18'
WHEN Age BETWEEN 18 and 24 THEN '18 - 24'
WHEN Age BETWEEN 25 and 34 THEN '25 - 34'
WHEN Age BETWEEN 35 and 49 THEN '35 - 49'
WHEN Age BETWEEN 50 and 64 THEN '50 - 64'
ELSE 'Over 65'
END AS AgeRange
FROM
CustomerAges