2010-08-12 7 views

Répondre

4

Vous pouvez le faire:

SELECT * FROM `information_schema`.`ROUTINES` where specific_name = 'my_procedure_name' and routine_schema = 'my_schema' 

.. et s'il existe, devrait obtenir un résultat. Cependant, gardez à l'esprit que sur la majorité des services mysql d'hébergement partagé, les routines, les triggers et ainsi de suite ne sont normalement pas autorisés à être créés. Si c'est votre propre serveur, pas de problème;)

+0

cela fonctionnera-t-il encore si le prodecure est un insert? (la raison derrière la procédure d'insertion est, j'ai besoin de last_inserted_id() et pour une raison inconnue dans mon application C# utilisant odbc drivers il ne retournera pas de résultat pour last_inserted_id() donc la procédure le fait pour moi) – Vade

+0

Ah, pensez-vous signifie un déclencheur? Cela s'applique toujours si la procédure est appelée après ou avant une insertion, mais je n'ai pas la syntaxe à portée de main. Quoi qu'il en soit, si le déclencheur/la procédure est défini, il sera dans le schéma d'information, qui est disponible pour les utilisateurs dans presque toutes les circonstances (j'ai toujours été capable de l'interroger). – dmp

2

Sur MS SQL vous pouvez effectuer la requête suivante:

if exists 
(
    select name from sysobjects 
    where name = 'function_name' and type = 'fn' 
) 
begin 
    drop function function_name 
end 
go 
Questions connexes