попробуйте это, но введите мне ошибку. Неправильный синтаксис
declare @EmpId int
SELECT dbo.Employee.Id as @EmpId FROM dbo.Employee
Ответ 1
select @EmpID = ID from dbo.Employee
или
set @EmpID = (выберите id из dbo.Employee)
Обратите внимание, что запрос select может возвращать более одного значения или строк. поэтому вы можете написать запрос выбора, который должен возвращать одну строку.
Если вы хотите добавить больше столбцов в одну переменную (MS SQL), есть возможность использовать переменную таблицы
DECLARE @sampleTable TABLE(column1 type1)
INSERT INTO @sampleTable
SELECT columnsNumberEqualInsampleTable FROM .. WHERE ..
Поскольку переменная типа таблицы не существует в Oracle и других, вы должны определить ее:
DECLARE TYPE type_name IS TABLE OF (column_type | variable%TYPE | table.column%TYPE [NOT NULL] INDEX BY BINARY INTEGER;
- Затем объявить переменную TABLE этого типа: variable_name type_name;
- Назначение значений переменной TABLE: variable_name(n).field_name := 'some text';
- Где 'n' - значение индекса
Ответ 2
Предполагая, что такой запрос вернет одну строку, вы можете использовать либо
select @EmpId = Id from dbo.Employee
или
set @EmpId = (select Id from dbo.Employee)
Ответ 3
Вот как назначить значение переменной:
SELECT @EmpID = Id
FROM dbo.Employee
Однако вышеприведенный запрос возвращает более одного значения. Вам нужно добавить предложение WHERE, чтобы вернуть одно значение Id.