При преобразовании процедур MS SQL Server в процедуры MySQL лучше использовать локальные переменные, объявленные с DECLARE
.
Переменные @var
являются определяемыми пользователем переменными, а область действия - это процесс.Поэтому, если ваши процедуры вызывают другие процедуры, значение переменной может измениться, тогда как локальные переменные не изменятся.Локальные переменные также имеют определенный тип.
Чтобы преобразовать синтаксис MS SQL Server
SELECT @MyParam = MyValue FROM MyTable
в MySQL, используйте:
DECLARE vMyParam int;
SELECT MyValue INTO vMyParam FROM MyTable;
Формат:
SELECT @MyParam := MyValue FROM MyTable
вызовет дополнительный набор результатов из процедуры, так что это, вероятно, то, что вам не нужно.
Вы можете использовать формат :=
, когда используете команду SET
, где вы явно задаетезначение для переменной.
SET vMyParam = 10;