bonjour
j'ai une procédure stocker que je compose et que j'execute avec un execute
pour simplifier le WHERE ... IN (... ) je passe dans @etats les états que je veux afficher "10,20,30" par exemple
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 ALTER PROCEDURE [dbo].[Etats] -- Add the parameters for the stored procedure here @etats varchar(50) = null, @count bit = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; declare @sql nvarchar(max) set @sql = 'select LEFT(TypeModule, 1) AS Position, Finition, ' if @count = 1 set @sql = @sql + 'COUNT(*) AS Nombre ' else set @sql = @sql + 'Etat ' set @sql = @sql + 'from ediligne ' set @sql = @sql + 'where filterindex = 0 ' -- if states are specified if @etats IS not NULL begin set @sql = @sql + 'and etat in (' + @etats + ') ' end if @count = 1 set @sql = @sql + 'GROUP BY LEFT(TypeModule, 1), Finition' execute(@sql) END
si je l'utilise en l’état avec entity il me renvoi le résultat de l’exécute mais pas le tableau
la seule solution que j'ai trouvé c'est d'en faire une seconde avec
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ALTER PROCEDURE [dbo].[EtatsX] @etats varchar(50) = null, @count bit = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; declare @t table(TypeModule varchar(10), Finition varchar(10), Count int) insert @t exec [dbo].[Etats] @etats, @count select * from @t END
qui me renvoi le tableau effectif
mais y'aurait il une solution pour renvoyer le tableau dans la première (j'ai tenté mais ça marche pas)
Partager