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 33 34 35 36
|
create proc ps_compareDevis
@numDevis1 int,
@numDevis2 int
as
begin
-- La table temporaire pour stocker les colonnes différentes
create table #tab(nomColonne varchat(50))
-- On parcours toutes les colonnes de la table
declare curseur cursor for
select c.[name] as [nomColonne]
from [sysobjects] o inner join
[syscolumns] c on o.[id] = c.[id]
where o.[name] = 'Devis'
open curseur -- On ouvre le curseur
fetch curseur into @nomColonne -- On lit la 1er colonne
while @@FETCH_STATUS = 0 begin
if @nomColonne != 'numDevis' begin
if (select @nomColonne from Devis where numDevis=@numDevis1) not like (select @nomColonne from Devis where numDevis=@numDevis2)) begin
-- Les deux entrée de la table devis ne sont pas identique
insert into #tab(nomColonne) values(@nomColonne)
end
end -- Fin @nomColonne != 'numDevis'
-- On passe à la colonne suivante
fetch curseur into @nomColonne
end -- Fin while
close curseur
deallocate curseur
-- On affiche la liste des colonnes
select * from #tab
drop table #tab
end --Fin de la procedure |
Partager