我曾经遇到过这个问题,创建了一个程序然后当我想要改变它时我先放弃它然后再重新创建它。然后我认为这花了很多时间。 我必须找到更好的方法!
这是减轻时间的最好方法。并且还需要稍后改变它吗?
答案 0 :(得分:3)
有趣的是我发现你可以用一个程序完成所有这些。您将程序分为两部分:
如果指定模式中具有指定名称的存储过程不存在,则第一部分将创建一个空/虚拟存储过程/存根。当您在新环境中创建此存储过程时,这对初始设置很有用。
上述脚本的第二部分始终改变存储过程 - 无论是在第一步中创建还是在之前存在。因此,每次需要对存储过程进行一些更改时,只需更改上述脚本的ALTER PROCEDURE
部分(第二部分),就可以执行整个脚本,而无需担心存储过程是否已存在。< / p>
示例代码:
USE AdventureWorks
GO
IF OBJECT_ID('dbo.uspGetEmployeeDetails') IS NULL -- Check if SP Exists
EXEC('CREATE PROCEDURE dbo.uspGetEmployeeDetails AS SET NOCOUNT ON;') -- Create dummy/empty SP
GO
ALTER PROCEDURE dbo.uspGetEmployeeDetails -- Alter the SP Always
@EmployeeID INT
AS
BEGIN
SET NOCOUNT ON;
SELECT HRE.EmployeeID ,
PC.FirstName + ' ' + PC.LastName AS EmployeeName ,
HRE.Title AS EmployeeTitle ,
PC.EmailAddress AS EmployeeEmail ,
PC.Phone AS EmployeePhone
FROM HumanResources.Employee AS HRE
LEFT JOIN Person.Contact AS PC
ON HRE.ContactID = PC.ContactID
WHERE HRE.EmployeeID = @EmployeeID
END
GO
希望它有所帮助,谢谢。