У меня есть хранимая процедура, в которой я получаю столбец таблицы, который необходим для оператора SELECT в переменной с разделенной запятой. Но это не работает для меня .:SELECT Query with Columns, хранящиеся в переменной
SP:
ALTER PROCEDURE [dbo].[SPGet_Assistance_Detail]
(
@Id int,
@UserDesig varchar(20) --User Desig can be 'FFR' or 'HO'
)
AS
DECLARE @Cols VARCHAR(MAX)
SELECT @Cols = Column_Listing FROM Role_Col_Mapping WHERE Tbl_Name = 'Assistance' and Role = @UserDesig
SELECT @Cols FROM dbo.Assistance WHERE Service_Id=(@Id)
RETURN
Здесь Role_Col_Mapping
имеет поля, такие как: Tbl_Name
, Role
и Column_Listing
. Он хранит данные cols, разрешенные любому пользователю, основываясь на его роли в любой таблице. И Assistance
- это таблица, в которой данные столбцов мне нужно отображать.
Я получаю неправильный выход. Коды разделяются запятой.
Комментарий EXEC и попробовать 'PRINT @ query' первый так посмотреть, что вы получаете до выполнения и настройки соответственно. Я не знаю, что такое '@ cols', возможно, в конце или в начале есть запятые, которые нужно удалить. –
Данные выглядят так: * Service_Id, Request_Id, Vat_Tin_No, Bill_Invoice_Date, Created_Date, Entry_Done_By, Modified_Date, Executed_Date * Отсутствие ошибок в данных, но по-прежнему сталкивается с одной и той же проблемой. – Dhwani
http://sqlfiddle.com/#!6/d41d8/4366 - Посмотрите отлично, например, проверьте, были ли вы сделаны какие-либо ошибки и/или отправили свой точный запрос, чтобы его можно было проверить. –