#variables #reporting-services
#переменные #Службы отчетов
Вопрос:
Я использую хранимую процедуру с моим отчетом SSRS, используя @salesperson в качестве параметра в SSRS. SQL Server Enterprise. Ver 15.0
Я создаю временную таблицу в сохраненной процедуре, затем я использую временную таблицу с остальной частью моего запроса. Я пытаюсь запустить сохраненный процесс в SSMS перед тем, как вводить его в SSRS, но при запуске я получаю ошибку НЕДОПУСТИМОГО столбца. Если я объявлю @SalesPerson = null, он будет запущен, поэтому я считаю, что я делаю что-то не так с этой строкой кода.
Я хочу установить для моей переменной @SalesPerson несколько имен продавцов для тестирования, но я не могу заставить работать даже одно имя продавца.
РЕДАКТИРОВАТЬ: я могу сказать, что моя переменная @SalesPerson объявлена и УСТАНОВЛЕНА правильно, поэтому это связано с тем, как она взаимодействует с исполняемым @InsertSales .
Спасибо за любую помощь, Брент
declare @SalesPerson varchar (255);
Set @SalesPerson = 'smith';
-- Select @SalesPerson;
IF OBJECT_ID('tempdb..#p_traders') IS NOT null DROP TABLE #p_sales
CREATE TABLE #p_sales(lastname varchar(255));
DECLARE @InsertSales varchar(max) = 'insert into #p_sales
values (' REPLACE(@SalesPerson,',','),(') ');';
EXEC (@InsertSales);
Комментарии:
1. Что это за база данных и версия?
2. Извините, SQL Server. SQL Server Enterprise. Ver 15.0
Ответ №1:
Вы можете использовать встроенную функцию string_split для упрощения работы
DECLARE @SalesPerson as varchar(max) = 'Smith, Jones'
DROP TABLE IF EXISTS #p_sales
SELECT ltrim(rtrim(value)) as lastname
INTO #p_sales
from string_split(@SalesPerson, ',')
SELECT * FROM #p_sales
Дает следующее
Комментарии:
1. Привет, да, я работал с string_split , но я получаю указания использовать временную таблицу, как это делает остальная часть сохраненной процедуры. Но, спасибо.
2. При этом используется временная таблица
3. Извините, только что видел это. Я скопировал и запустил код, и я получаю недопустимое имя объекта для string_split
4. Вы используете SQL Sever 2019, да? С этим все должно работать нормально. Я только что протестировал это, и все сработало нормально. Можете ли вы запустить точный фрагмент кода mas в моем ответе и убедиться, что это работает.
5. И проверьте уровень совместимости базы данных