Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво правите в SQL Server, за да СЪЗДАВАТЕ ИЛИ ПРОМЕНЯТЕ?

Тази статия прави добра гледна точка относно загубата на разрешения при изпускане на обект в SQL сървър.

И така, ето подходът, който запазва разрешенията:

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

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

Работи и за функции, просто заменете PROCEDURE с FUNCTION в горния код.

Друга причина да обмислите да го направите по този начин е толерантността към провала. Да предположим, че вашият DROP успее, но вашият CREATE се провали - завършвате с повредена DB. Използвайки подхода ALTER, ще получите по-стара версия на обекта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Качване на Excel лист и импортиране на данните в база данни на SQL Server

  2. Какво означава символът тръба/вертикална лента в TSQL?

  3. Как да добавя колона с пореден номер към данните за резултатите?

  4. План за изпълнение на разделен изглед

  5. Заменете нулевата стойност с предишна налична стойност в заявката за ред SQL сървър