SQL: .. содержит неразрешенную ссылку на объект - PullRequest
0 голосов
/ 16 ноября 2018

Полное сообщение

Parameter: [DbName].[SpName].@timeout contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [dbo].[TIME]

Я знаю, есть пара Вопросов, уже существует с этим сообщением.Но это в моем примере происходит особенно из-за типа TIME Sql.

У меня есть StoredProcedure (в проекте базы данных Visual Studio Sql), который выглядит следующим образом.

CREATE PROCEDURE [dbo].[my_sp] 
   @name VARCHAR(255),
   @timeout TIME 
AS
  ...

У меня нет таблицы с именем TIME .Когда я меняю тип TIME на другой, он работает правильно, иначе он показывает это сообщение в типе TIME и во время компиляции.

ВРЕМЯ Я пытаюсь использовать в качестве альтернативы SQL для TimeSpan C #.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы не можете использовать time с SQL Server 2005, так как он не существовал до SQL Server 2008.

Вместо этого рассмотрите возможность хранения числового представления временного интервала (который, в конечном счете,что time равно в любом случае - просто: вы бы делали это явно, а не автоматически).Типичными примерами может быть сохранение в виде int количества секунд или миллисекунд, представленных вашим временным интервалом.

Для удобства TimeSpan имеет свойство TotalSeconds и TotalMilliseconds, которое сопоставляется с этим(просто: преобразовать его в целое число), и имеет FromSeconds(...) и FromMilliseconds(...) методы для движения в другом направлении.


Из комментариев кажется, что вам также нужно объединить функции (добавить)время до даты;это также легко:

DATEADD(second, {interval as seconds}, {some datetime})

или

DATEADD(millisecond, {interval as milliseconds}, {some datetime})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...