这里是使用这种方法的一种方法和一些理由。 这与储存的胎盘相对应,但存在利弊。
UPDATE:你也可以在一份译文中填满这一整个呼吁。 包括许多储存在单项交易中的程序,这些交易可以全部进行或全部进行。 交易中总结的另一个好处是,只要不使用READ UNCOMMITTED交易孤立程度,存储程序就一直存在其他链接。
(1) 避免作为进程决定而改变。 我们的工作永远都是通过国际自由论坛进行的。 如果你采取同样的模式,选择新的PROC,那么满足变化的要求就更困难了,因为你会有一个国际自由论坛。
2) 您必须把CREATE/ALTER作为首批呼吁,以便你能够在动态外的交易中总结一系列程序更新。 从根本上说,如果你想要掌握一整套程序,更新或将其全部撤回,而不恢复非行的备份,就是在单一批次中做一切事的一种方式。
IF NOT EXISTS (select ss.name as SchemaName, sp.name as StoredProc
from sys.procedures sp
join sys.schemas ss on sp.schema_id = ss.schema_id
where ss.name = dbo and sp.name = MyStoredProc )
BEGIN
DECLARE @sql NVARCHAR(MAX)
-- Not so aesthetically pleasing part. The actual proc definition is stored
-- in our variable and then executed.
SELECT @sql = CREATE PROCEDURE [dbo].[MyStoredProc]
(
@MyParam int
)
AS
SELECT @MyParam
EXEC sp_executesql @sql
END