Вопросительный знак в SQL Server - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть этот оператор Oracle SQL:

INSERT INTO document_status (result_row_id, timestamp, username,
    status_type, status, comment_text, document, document_file, assigned_to)
VALUES (?, SYSTIMESTAMP, ?, ?, ?, ?, ?, ?, ?)

Я хочу преобразовать этот оператор в оператор SQL Server, но я не знаю эквивалентного параметра для вопросительных знаков в VALUES (?, SYSTIMESTAMP, ?, ?, ?, ?, ?, ?, ?) Что я могу сделать

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

На самом деле то, на что вы смотрите, это почти наверняка подготовленный оператор, возможно, запускаемый из Java или C #.?, который вы видите, является заполнителями для фактических значений, которые будут связаны с оператором позже.Таким образом, единственное, что вам, возможно, придется изменить здесь, это литерал SYSTIMESTAMP.SQL Server использует SYSDATETIMEOFFSET() для этого:

INSERT INTO document_status (result_row_id, timestamp, username, status_type, status,
    comment_text, document, document_file, assigned_to)
VALUES
    (?, SYSDATETIMEOFFSET(), ?, ?, ?, ?, ?, ?, ?);
0 голосов
/ 07 декабря 2018

Вы можете использовать переменную в sql-сервере:

DECLARE   @result_row_id    INT
        , @username         VARCHAR(100)
        , @status_type      VARCHAR(100)
        , @status           VARCHAR(100)
        , @comment_text     VARCHAR(100)
        , @document         VARCHAR(100)
        , @document_file    VARCHAR(100)
        , @assigned_to      VARCHAR(100)


INSERT INTO document_status 
(
      result_row_id
    , timestamp
    , username
    , status_type
    , status
    , comment_text
    , document
    , document_file
    , assigned_to
)
VALUES 
(
      @result_row_id
    , GETDATE()
    , @username
    , @status_type
    , @status
    , @comment_text
    , @document
    , @document_file
    , @assigned_to
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...