У меня есть экземпляр SQL Server 2008 R2 с несколькими базами данных.
Я пытаюсь запустить табличную функцию в одной из баз данных (назовем ее DB1), которая будет принимать в качестве даты дату и возвращать таблицу соответствующей информации.
Я выполняю свой запрос так:
SELECT * FROM dbo.getAllStatusesForGridProjectsByMaximumDate(CURRENT_TIMESTAMP)
, чтобы получить самую актуальную информацию.Однако вместо таблицы результатов SQL просто выводит сообщение об ошибке:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'CURRENT_TIMESTAMP'.
Странно, однако, что если я запрыгиваю на другую базу данных (DB2) и запускаю функцию, обращаясь конкретно к серверу, он выполняет:
USE DB2
GO
SELECT * FROM DB1.dbo.getAllStatusesForGridProjectsByMaximumDate(CURRENT_TIMESTAMP)
Это возвращает результаты.Однако если я попытаюсь выполнить запрос с DB1, он получит ту же самую ошибку неправильного синтаксиса:
USE DB1
GO
SELECT * FROM DB1.dbo.getAllStatusesForGridProjectsByMaximumDate(CURRENT_TIMESTAMP)
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'CURRENT_TIMESTAMP'.
Я просмотрел базы данных, чтобы увидеть, есть ли какая-то настройка или свойство, которые япропустил, что позволило бы мне передать CURRENT_TIMESTAMP моей функции с табличным значением и ничего не нашел.Я попробовал явный CAST / CONVERT для CURRENT_TIMESTAMP, и ему там не нравятся какие-либо функции.
Какое колдовство было выполнено на моей DB2, что позволило бы ему запускать dbo.Function (Current_Timestamp)) что не было выполнено на DB1?Я буду продолжать проверять самостоятельно, но любая помощь, которую вы, замечательные люди, могли бы послать, будет принята с благодарностью.