{"id":1963,"date":"2022-04-13T06:11:00","date_gmt":"2022-04-13T04:11:00","guid":{"rendered":"https:\/\/expert-only.com\/?p=1963"},"modified":"2022-12-12T13:35:48","modified_gmt":"2022-12-12T12:35:48","slug":"tester-si-une-table-sql-server-existe","status":"publish","type":"post","link":"https:\/\/expert-only.com\/fr\/t-sql\/tester-si-une-table-sql-server-existe\/","title":{"rendered":"Tester si une table SQL Server existe"},"content":{"rendered":"\n<p>Comment tester si une table SQL Server existe avant de la supprimer par exemple ? Ou encore avant de l&rsquo;utiliser pour une op\u00e9ration de manipulation de donn\u00e9es ? Pour supprimer une table SQL Server directement, utiliser la commande DROP. Voici comment v\u00e9rifier si une table existe en T-SQL.<\/p>\n\n\n\n<p>Pour supprimer une table SQL Server sans erreur durant les d\u00e9ploiements par exemple, utiliser les commandes If Exists et Drop Table est obligatoire. De plus, pour \u00e9viter d&rsquo;avoir des messages d&rsquo;erreur, il est plus int\u00e9ressant de tester l&rsquo;existence de la table avant de la supprimer. Et ce de mani\u00e8re syst\u00e9matique. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tester si une table SQL Server existe avant suppression<\/h2>\n\n\n\n<p>En effet, comment tester l&rsquo;existence de la table avant de la supprimer pour \u00e9viter cette erreur SQL Server classique ?<\/p>\n\n\n\n<p><em>\u00ab\u00a0Msg 3701, Level 11, State 5, Line 1. Cannot drop the table &lsquo;VENTES&rsquo;, because it does not exist or you do not have permission.\u00a0\u00bb<\/em><\/p>\n\n\n\n<p>Pour utiliser les fonctions SQL Server comme If Exists et Drop Table, voir l&rsquo;exemple T-SQL ci-dessous.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">IF EXISTS (\n\tSELECT 1 FROM sys.objects\n\tWHERE object_id = object_id(N'[dbo].[VENTES]')\n\tAND type in (N'U') \n)\n\tDROP TABLE [dbo].[VENTES];\n<\/pre>\n\n\n\n<p>Cet article explique comment v\u00e9rifier si une table existe avant de la supprimer avec une requ\u00eate SQL simple. Utiliser la fonction native <a href=\"https:\/\/docs.microsoft.com\/fr-fr\/sql\/t-sql\/language-elements\/exists-transact-sql?view=sql-server-ver15\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft<\/a> EXISTS(). L&rsquo;article suivant montre comment <a href=\"https:\/\/expert-only.com\/transact-sql\/supprimer-table-sql-server\/\">supprimer une table sans v\u00e9rifier son existence<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-utiliser-le-test-d-existence-avec-d-autres-objets-sql-server\">Utiliser le test d&rsquo;existence avec d&rsquo;autres objets SQL Server<\/h2>\n\n\n\n<p>Pour aller plus loin cette m\u00e9thode pour v\u00e9rifier si une table existe en T-SQL fonctionne aussi pour d&rsquo;autres d&rsquo;objets MS SQL. Comme les vues, les proc\u00e9dures stock\u00e9es, mais aussi les tables temporaires locales ou globales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tester si une table existe en T-SQL avant une commande INSERT<\/h2>\n\n\n\n<p>D&rsquo;autre part, avec du code T-SQL de type LDD (pour Langage de D\u00e9finition de Donn\u00e9es) automatis\u00e9, utiliser la fonction EXISTS. En effet, pour <a href=\"https:\/\/expert-only.com\/transact-sql\/requete-insert-into-avec-des-variables-sql-server\/\">ins\u00e9rer des donn\u00e9es dans une table<\/a> et g\u00e9rer le risque d&rsquo;erreurs, un test est recommand\u00e9. <\/p>\n\n\n\n<p>En effet, m\u00eame si les tables temporaires sont supprim\u00e9es \u00e0 la fin de la session. Il est pr\u00e9f\u00e9rable de tester l&rsquo;existence avant de les cr\u00e9er \u00e0 nouveau avec le m\u00eame nom dans la m\u00eame base. <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-tutoriels-sql-et-it wp-block-embed-tutoriels-sql-et-it\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"dXtK52A1zB\"><a href=\"https:\/\/expert-only.com\/fr\/t-sql\/supprimer-table-sql-server\/\">Supprimer une table SQL Server<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u00ab\u00a0Supprimer une table SQL Server\u00a0\u00bb &#8212; Tutoriels SQL et IT\" src=\"https:\/\/expert-only.com\/fr\/t-sql\/supprimer-table-sql-server\/embed\/#?secret=usbUKErsFP#?secret=dXtK52A1zB\" data-secret=\"dXtK52A1zB\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Comment tester si une table SQL Server existe avant de la supprimer par exemple ? Ou encore avant de l&rsquo;utiliser pour une op\u00e9ration de manipulation de donn\u00e9es ? Pour supprimer une table SQL Server directement, utiliser la commande DROP. <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/fr\/t-sql\/tester-si-une-table-sql-server-existe\/\" title=\"Tester si une table SQL Server existe\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":10617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":{"0":"post-1963","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/1963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/comments?post=1963"}],"version-history":[{"count":0,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/1963\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media\/10617"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media?parent=1963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/categories?post=1963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/tags?post=1963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}