2017-06-21 1 views
1

Je veux générer le script en utilisant Tasks | Generate Scripts avec IF Exist Drop Stored Procedure.Générer un script avec EXISTE Si DROP Mais Ne pas inclure les cas Non Existe en créer dans SQL Server

Mais je ne veux pas inclure IF NOT EXISTS - Create Stored Procedure tout en générant des scripts alors que dois-je faire?

actuel

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC')) 
DROP PROCEDURE [dbo].[SPNAME] 
GO 

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC')) 
BEGIN 
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[SPNAME] AS' 
END 
GO 

requis

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC')) 
DROP PROCEDURE [dbo].[SPNAME] 
GO 

CREATE PROCEDURE [dbo].[SPNAME] AS 

Quelqu'un peut-il s'il vous plaît aidez-moi!

+0

Quelle est votre version? –

+0

Toute version de SQL Server – pedram

+0

'DROP -> CREATE' peut entraîner la perte d'informations sur les autorisations. 'CREATE -> ALTER' est plus sûr. – lad2025

Répondre

1

Il n'y a pas d'option directe disponible pour faire ceci. Suivez l'étape ci-dessous.

  1. Générez des scripts DROP pour tous les objets.

    • Inclure Si NOT EXISTS = True
    • Script DROP et create = Script DROP
  2. Generate créer des scripts pour tous les objets.

    • Inclure Si NON exists = False
    • Script DROP et CREER = Script CREATE
    • Ajouter au fichier = True

étape 2 ajoutera le contenu des scripts gouttes qui sont générées en 1ère étape.

Si vous souhaitez fusionner tous les fichiers dans un seul fichier puis utilisez la commande ci-dessous

for %f in (*.sql) do type "%f" >> c:\Test\output.sql 

Options de requête

Query Options

Goutte

Drop

Créer

Create