sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad gør du i SQL Server for at OPRETTE ELLER ÆNDRE?

Denne artikel gør en god pointe om at miste tilladelser, når et objekt droppes i SQL-serveren.

Så her er fremgangsmåden, der bevarer tilladelser:

IF OBJECT_ID('spCallSomething') IS NULL
    EXEC('CREATE PROCEDURE spCallSomething AS SET NOCOUNT ON;')
GO

ALTER PROCEDURE spCallSomething ... 
--instead of DROP/CREATE

Fungerer også for funktioner, bare udskift PROCEDURE med FUNCTION i ovenstående kode.

En anden grund til at overveje at gøre det på denne måde er tolerance over for fiasko. Antag, at din DROP lykkes, men din CREATE mislykkes - du ender med en ødelagt DB. Ved at bruge ALTER-tilgangen vil du ende med en ældre version af objektet.



  1. Hvorfor MySQL fuldstændigt omformatere VIEW-forespørgselsteksten?

  2. Oracle - Med et en til mange-forhold skal du vælge forskellige rækker baseret på en min-værdi

  3. Hvad er forskellen mellem setTime(...) og setTimestamp(...) i Hibernate Query?

  4. Kan ikke slette tabelbrugere, fordi andre objekter afhænger af det