sql >> Databáze >  >> RDS >> Sqlserver

Co děláte na SQL Serveru pro VYTVOŘENÍ NEBO ZMĚNU?

Tento článek je dobrým bodem o ztrátě oprávnění při upuštění objektu na SQL server.

Zde je tedy přístup, který zachovává oprávnění:

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

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

Funguje také pro funkce, stačí nahradit PROCEDURE pomocí FUNCTION ve výše uvedeném kódu.

Dalším důvodem, proč to takto dělat, je tolerance k neúspěchu. Předpokládejme, že váš DROP uspěje, ale vaše CREATE selže – skončíte s rozbitou DB. Pomocí přístupu ALTER skončíte se starší verzí objektu.



  1. MySQL GROUP_CONCAT escapování

  2. Proč zjistím, že chybový dotaz MySQL byl prázdný?

  3. Jak zobrazit prarodiče v hierarchii SQL?

  4. Odstraňte pomocí levého vnějšího spojení v Postgresu