Я попытался с кодом ниже:Как сохранить результат выражения select в переменную?
DECLARE @rec_count int
Set @rec_count= select 1
но он показывает ошибку
"Неправильный синтаксис около Select".
Я попытался с кодом ниже:Как сохранить результат выражения select в переменную?
DECLARE @rec_count int
Set @rec_count= select 1
но он показывает ошибку
"Неправильный синтаксис около Select".
DECLARE @rec_count int;
Set @rec_count = 1;
Либо:
set @rec_count = (select 1)
или
select @rec_count = 1
Пример присвоения графа из таблицы в переменной:
set @rec_count = (select COUNT(*) from master..spt_values)
select @rec_count = COUNT(*) from master..spt_values
Однако, если вы дзю го необходимо присвоить значение переменной, вам не нужен какой-либо оператор выбора:
set @rec_count = 1
или
declare @rec_count int = 1
Для сохранения результата в select
заявления в переменные см ниже
DECLARE @rec_count INT
SELECT @rec_count = 1
Мы можем получить больше, чем одно значение из оператора выбора, как показано ниже
DECLARE @rec_count INT
DECLARE @date DATETIME
SELECT @rec_count = 1, @date = GETDATE()
Если вы пытаетесь получить количество записей, которое выглядит как то, что вы пытаетесь сделать, вы можете сделать это:
declare @rec_count int
select @rec_count = count(1) from [your_table] -- where some condition is met
Примечание: Использование count(1)
вместо count(*)
, как это быстрее просто выберите один столбец, чем все при получении счета.
Или, если это число является результатом некоторых вставок/обновлений/выбирает/удаления, вы можете использовать @@ROWCOUNT, что:
Возвращает количество строк, затронутых в последнем заявлении.
Так что, если, например, вы выполняете update
или select
и хотите знать, сколько строк были затронуты, он автоматически будет храниться SQL Server в @@ROWCOUNT
.
declare @rec_count int
-- some table change
update your_table
set col1 = 1
where col1 = 0
set @rec_count = @@ROWCOUNT
-- select @@ROWCOUNT <-- this would return the number of rows updated
Вы должны быть более конкретным. Вы пытаетесь сохранить одно скалярное значение из одной строки (т. Е. Количество строк)? Или вы пытаетесь сохранить несколько столбцов и/или строк? Ответ на каждый из этих вопросов различен, и до сих пор люди отвечали только на одно скалярное значение. Итак, что вы пытаетесь достичь? –