我有一个存储过程,我在其中获取表的列,该列是用逗号分隔的变量中的 SELECT 语句所需的。但这对我不起作用。:
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
是我需要显示列数据的表格。
我得到错误的输出。这是用逗号分隔的cols。