Я пытаюсь следующий запрос, и она работает, как я ожидать, что этоSQL Server: как использовать переменные?
SELECT RIGHT('0000' + CAST(MAX(party_id)+1 AS VARCHAR(4)),4) FROM PARTY
Результат является:
Но когда я выполнить следующий запрос таким образом, что я могу сохранить это значение в переменной
DECLARE @pid varchar;
SELECT @pid = RIGHT('0000' + CAST(MAX(party_id)+1 AS VARCHAR(4)),4) FROM PARTY
SELECT @pid as party_id
он не возвращает 0147
как в приведенном выше запросе, вместо того, что она возвращает это
Может кто-нибудь пожалуйста, скажите мне, что я делаю неправильно здесь?
marc_s есть длина по умолчанию IIR ... нет? (или это для nvar ...)) –
@RoyiNamir: да: ** ONE ** знак. При использовании 'varchar' без длины в контексте' CAST' или 'CONVERT', это 30 символов, но когда вы определяете переменную, это 1 символ –
Marc, да, я смутился с этой информацией: _« Когда n не указывается при использовании функций CAST и CONVERT, длина по умолчанию - 30. "_ –