Est-il possible d'exécuter une requête SQL sans afficher les résultats ?
comme
Select * from Table_Name
après l'exécution de cette requête, le résultat ne doit pas s'afficher dans le serveur SQL.
Est-il possible d'exécuter une requête SQL sans afficher les résultats ?
comme
Select * from Table_Name
après l'exécution de cette requête, le résultat ne doit pas s'afficher dans le serveur SQL.
Si vous avez besoin que la requête s'exécute mais que vous n'avez pas besoin de l'ensemble des résultats, vous pouvez envelopper la requête dans une instruction EXISTS (ou NOT EXISTS) : IF EXISTS(SELECT * FROM NOM_TABLE...). Vous pouvez également sélectionner INTO #temp, puis supprimer ultérieurement la table temporaire.
Dans mon cas, je testais que les données se comportaient dans toutes les vues, par exemple que les fonctions cast() ne provoquaient pas d'erreurs de conversion, etc., de sorte qu'il n'était pas possible de supprimer les données réelles.
J'ai trouvé le script suivant pour tester toutes les vues de cette manière, le seul problème est lorsqu'il rencontre des vues qui ont des colonnes de texte.
declare csr cursor local for select name from sys.views order by name
declare @viewname sysname
declare @sql nvarchar(max)
open csr
fetch next from csr into @viewname
while @@fetch_status = 0 begin
--set @sql = 'select top 1 * from ' + @viewname
set @sql = 'declare @test nvarchar(max) select @test = checksum(*) from ' + @viewname
print @viewname
exec sp_executesql @sql
fetch next from csr into @viewname
end
close csr
deallocate csr
Un autre cas d'utilisation est celui où vous souhaitez simplement lire toutes les lignes du tableau, par exemple pour tester les corruptions. Dans ce cas, vous n'avez pas besoin des données elles-mêmes, mais seulement du fait qu'elles sont lisibles ou non. Cependant, le nom de l'option "Discard results AFTER execution" est un peu déroutant - il me dit que le résultat est récupéré et seulement ensuite jeté. Au contraire, il récupère bien les données mais ne les stocke nulle part (par défaut, les lignes sont placées dans la grille, ou toute autre sortie que vous avez choisie) - les lignes reçues sont éliminées à la volée (et non APRÈS l'exécution).
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.