хранить и использовать результат выборки в хранимой процедуре?

Возможно ли сохранить результаты запроса выбора в сохраненном proc и затем использовать эти результаты из хранимого proc для дальнейшего запроса набора результатов?

Пример // мой сохраненный proc (упрощенный пример)

ALTER PROCEDURE [dbo].[users] AS BEGIN Declare @users nvarchar(1000) set @users = select * from users // query @users result for counts, sums where clauses, etc... END 

Вы хотите, чтобы users были табличной или временной таблицей вместо типа nvarchar.

Таблица Variable Version

 DECLARE @users TABLE ( UserId int, ... ) INSERT INTO @users (UserId, ...) SELECT * FROM users SELECT * FROM AnotherTable t INNER JOIN @users u ON ... 

Версия Temp Table

 CREATE TABLE #users ( UserId int, ... ) INSERT INTO #users (UserId, ...) SELECT * FROM users SELECT * FROM AnotherTable t INNER JOIN #users u ON ... 

Вы также можете неявно создать таблицу temp.

 SELECT * INTO #users FROM users SELECT * FROM AnotherTable t INNER JOIN #users u ON ... 

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

 DECLARE @users TABLE (...columns...); INSERT @users SELECT * FROM dbo.Users; 

Хотя в зависимости от количества строк таблица #temp часто может быть более безопасной, поскольку она будет иметь статистику, вы можете создавать дополнительные индексы и т. Д.

 CREATE TABLE #users (...columns...); INSERT #users SELECT * FROM dbo.Users; 

Для этого вы можете использовать временную таблицу или переменную таблицы. Вот сообщение в блоге, сравнивающее параметры.

Interesting Posts

потери нулевых значений, фильтрующих результаты запроса sql, используя

Несколько соединений с одной и той же строкой соединения в единой транзакции, повышенной транзакции?

Помощь в сводной функции в SQL Server

SqlDatareader GetValue возвращает значение даты в соответствии с системным форматом даты

Как создать копию таблицы в SQL Server Enterprise Manager?

SQL select row, где SUM столбца наибольший (с двумя полями в GROUP BY)

Получить последнюю запись для каждой даты из таблицы

Могу ли я открыть транзакцию с остановкой с SQL Server?

Предотвращать запросы SQL от непривилегированных пользователей от блокировки критических процессов

SSIS Сравните содержимое таблиц и обновите другое

Объединение статических столбцов с динамическими столбцами в SQL SERVER 2008

SQL – как GROUP по id и идентифицировать столбец с наибольшим значением?

Нужна помощь в понимании этого SQL-запроса

Точность и масштабирование UserType на основе NHibernate

Лучшая практика передачи фактических имен пользователей из ASP.Net в SQL Server

Давайте будем гением компьютера.