sql >> Database >  >> RDS >> Sqlserver

Wat doe je in SQL Server om te CREREN OF TE VERANDEREN?

Dit artikel maakt een goed punt over het verliezen van rechten bij het neerzetten van een object in de SQL-server.

Dus hier is de aanpak die de rechten behoudt:

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

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

Werkt ook voor functies, vervang gewoon PROCEDURE met FUNCTION in de bovenstaande code.

Een andere reden om te overwegen het op deze manier te doen, is tolerantie voor falen. Stel dat uw DROP slaagt, maar uw CREATE mislukt - u eindigt met een kapotte DB. Als u de ALTER-aanpak gebruikt, krijgt u een oudere versie van het object.



  1. Waarom werkt de pi()-functie niet in Oracle met de JDBC-driver?

  2. PHP-SQL:Geüploade afbeelding weergegeven als ongewenste tekst

  3. een betere aanpak dan het opslaan van mysql-wachtwoord in platte tekst in het configuratiebestand?

  4. Hoe een schema door meerdere gebruikers te gebruiken zonder de schemanaam voor de objecten vooraf te fixeren?