我有一个SQL脚本,每次客户端执行“数据库管理”功能时都必须运行。该脚本包括在客户端数据库上创建存储过程。其中一些客户端在运行脚本时可能已经拥有存储过程,而另一些客户端可能没有。我需要将丢失的存储过程添加到客户端数据库中,但无论我如何尝试改变T-SQL语法,我都得到了这个结果
CREATE/ALTER PROCEDURE'必须是查询批处理中的第一个语句
我在创作作品之前读到过这种说法,但我不喜欢这样做。
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO
CREATE PROCEDURE MyProc
...
如何添加检查存储过程是否存在,如果存储过程不存在则创建它,如果存储过程存在则修改它?
我想知道!为什么我不写整个查询像这样
GO
create procedure [dbo].[spAddNewClass] @ClassName varchar(20),@ClassFee int
as
begin
insert into tblClass values (@ClassName,@ClassFee)
end
GO
create procedure [dbo].[spAddNewSection] @SectionName varchar(20),@ClassID int
as
begin
insert into tblSection values(@SectionName,@ClassID)
end
Go
create procedure test
as
begin
select * from tblstudent
end
我已经知道前两个过程已经存在,SQL将运行查询将给出前两个过程的错误,但它仍然会创建最后一个过程
SQl本身是照顾什么是已经存在的,这是我总是做我的客户端!