C# Ошибка с рабочим запросом SQL - имя переменной уже объявлено
Приведенный ниже запрос прекрасно работает в SQL Management Studio и в Altiris. Когда мы пытаемся добавить код в наш собственный инструмент отчетности, написанный на C#, мы получаем ошибку выше.
Declare @AcroPro int
Declare @AcroStan int
set @AcroPro = (select COUNT(distinct guid) from vAdobe_Acrobat_Pro where [Display Name] like '%Professional')
set @AcroStan = (select COUNT(distinct guid) from vAdobe_Acrobat_Stan where [Display Name] like '%Standard')
select distinct v2.name 'Software Product', t2.[Purchased Licenses], CASE
When t2._resourceguid = '8708D8B8-51A0-4386-B4A1-620CC63DEF0D'
Then @AcroPro
When t2._resourceguid = '37997FB9-9936-42CF-A34C-D68214C353CF'
Then @AcroStan
End [Active Licenses], CASE
When t2._resourceguid = '8708D8B8-51A0-4386-B4A1-620CC63DEF0D'
Then t2.[purchased licenses] - @AcroPro
When t2._resourceguid = '37997FB9-9936-42CF-A34C-D68214C353CF'
Then t2.[purchased licenses] -@AcroStan
End [Compliance] from vComputer v1
inner join Inv_SoftwareProduct_InstallationInfo t1 on v1.Guid = t1._computerResourceGuid
inner join Inv_SoftwareProduct_ComplianceInfo t2 on t1._ResourceGuid = t2._ResourceGuid
inner join vSoftwareProduct v2 on t2._ResourceGuid = v2.guid
where v2.name in ('Adobe Acrobat Professional', 'Adobe Acrobat Standard')
and v1.IsManaged = '1'
1 ответ
Ваш инструмент создания отчетов может отправлять один и тот же набор команд SQL дважды в одном пакете запросов, и в этом случае эти переменные будут повторно объявлены.