Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Неправилен синтаксис в близост до ключовата дума 'current_timestamp' - Но само в една база данни

Проверете нивото на съвместимост на базата данни (не беше 100% ясно дали проблемът се случва в DB1 или при извикване на функцията в DB1).

Обзалагам се, че нивото на съвместимост е 80 във всяка база данни, която проявява проблема; SQL Server 2000 не позволява функциите да бъдат предавани директно към UDF по този начин (и имаме същия проблем при извикване на някои от динамичните функции за управление, ако нивото на съвместимост е 80 - вижте тази публикация в блога и коментарите ). Тази база данни трябва да е била възстановена или прикачена след архивиране или отделяне от 2000. Или след надграждане от 2000. Можете да проверите текущата съвместимост по този начин:

SELECT name, compatibility_level FROM sys.databases WHERE name = 'DB1';

Ако откриете, че е <100, можете да кажете:

ALTER DATABASE DB1 SET COMPATIBILITY_LEVEL = 100;

Но трябва да го направите само ако знаете, че по-ниската съвместимост не е необходима поради някаква друга причина - и трябва да потвърдите на тестова система, че базата данни работи според очакванията при новото ниво на съвместимост. Ако имате проблеми, винаги можете да го промените обратно, но е по-добре да сте подготвени.

Ако не искате да се забърквате с нивото на съвместимост, можете леко да промените логиката си.

DECLARE @now DATETIME = CURRENT_TIMESTAMP;
SELECT * FROM dbo.getAllStatusesForGridProjectsByMaximumDate(@now);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на изход за задаване на променлива в оператор за сливане

  2. Връщане на последния въведен ID без използване на втора заявка

  3. Извличане на връщане на записи в база данни с помощта на LinqToSql?

  4. Какъв е правилният начин за попълване на DropDownList от база данни?

  5. sql сървър Масово вмъкване на csv с данни със запетая