У меня есть существующая хранимая процедура, которая принимает два однозначных параметра. Теперь у меня есть требование изменить один из его параметров, чтобы принять несколько значений. Я изменил хранимую процедуру, как показано ниже.Передача параметра с несколькими значениями в хранимую процедуру
CREATE PROCEDURE [dbo].[GetSpecificationsM1]
@EntityType NVARCHAR(100)
,@EntityId BIGINT
AS
DECLARE @EntityTypeId AS BIGINT
SET @EntityTypeId=ISNULL((SELECT ID
FROM [ObjectTypes] WHERE [Type][email protected]),0)
SELECT ISNULL([Specifications].[Id],0) AS [SpecificationId]
,ISNULL([Specifications].[Measure],'') AS [Measure]
,ISNULL([Specifications].[Notes],'') AS [Notes]
,ISNULL([UOM].[UOM],'') As UOM
,ISNULL(SpecificationsTemplate.Name,'') As Specification
,ISNULL(SpecificationsTemplate.Id, 0) AS SpecificationTemplateId
,ISNULL(Specifications.EntityId, 0) AS EntityId
,(CASE WHEN ISNULL([SpecificationsTemplate].FieldTypeId,0)=0
THEN 8 ELSE [SpecificationsTemplate].FieldTypeId END) AS [FieldTypeId]
,ISNULL(SpecificationsTemplate.ListId,0) AS ListId
,ISNULL([Specifications].[ListItemId],0) AS [ListItemId]
FROM [SpecificationsTemplate] LEFT OUTER JOIN [Specifications]
ON [SpecificationsTemplate].[Id]=[Specifications].[SpecificationTemplateId]
AND [Specifications].[EntityTypeId][email protected]
LEFT OUTER JOIN [UOM] ON [SpecificationsTemplate].[UOMId]=[UOM].[Id]
WHERE [Specifications].[EntityId] IN (@EntityId)
GO
В приведенном выше коде я модифицировал @EntityId, чтобы принять несколько значений в последней строке кода. Но я получаю ошибку, поскольку не могу преобразовать Varchar в BigINt, когда я пытаюсь передать несколько значений в параметр как @ EntityId = 9,10,11.
Просьба помочь мне с решением.
Спасибо!
Параметр должен быть единственным значением. Почему вы проходите 9,10,11. По мне проблема здесь. Покажите нам, как вы вызываете хранимую процедуру. –
Можете ли вы изменить свою программу на цикл данных в параметр? – vasin1987
@AnoushkaSeechurn Я использую эту хранимую процедуру в своем отчете SSRS. Мне нужна хранимая процедура для возврата значений для нескольких идентификаторов сущностей. Я создал параметр в своем отчете SSRS, который позволяет многозначное значение, и я передал этот параметр этой хранимой процедуре. – user1699025