TSQL 临时过程:已经有一个名为
TSQL Temporary Procedure: There is already an object named
已回答类似问题,但仅针对临时表。
我想根据
使用临时存储过程
-- test if folder exists, else create it
create procedure #mycheckcreatefolder
(
@rootfolder NVARCHAR(MAX),
@subfolder NVARCHAR (MAX)
)
as
BEGIN
declare @full_path as NVARCHAR(MAX)
declare @folder_exists as int
declare @file_results table
(file_exists int, file_is_a_directory int, parent_directory_exists int)
select @full_path = @rootfolder + @subfolder
insert into @file_results
(file_exists, file_is_a_directory, parent_directory_exists)
exec master.dbo.xp_fileexist @full_path
select @folder_exists = file_is_a_directory
from @file_results
--script to create directory
if @folder_exists = 0
begin
print 'Directory does not exist, creating new one'
EXECUTE master.dbo.xp_create_subdir @full_path
print @full_path + 'created on' + @@servername
end
else
print 'Directory already exists'
END;
GO
-- use the stored procedure
但是当我重复执行查询时,我得到
Msg 2714, Level 16, State 3, Procedure #mycheckcreatefolder, Line 30
There is already an object named '#mycheckcreatefolder' in the database.
第 30 行是 "print 'Directory already exists'"。
我已经删除了下面的所有代码,错误仍然弹出。
同时添加
drop procedure #mycheckcreatefolder
最后没有帮助,就像开始时有条件的下降一样,从那时起我得到的错误是 "create procedure" 需要成为第一条指令。
怎么了?
IF OBJECT_ID('tempdb..#mycheckcreatefolder') IS NOT NULL
DROP PROCEDURE dbo.#mycheckcreatefolder
GO
CREATE PROCEDURE dbo.#mycheckcreatefolder
AS
PRINT 'test';
if object_id('tempdb..#sp_today') is not null drop proc #sp_today;
go
create proc #sp_today as
select getdate() as dt;
您应该在 tempdb
中搜索它,而不是在当前数据库中搜索
已回答类似问题,但仅针对临时表。
我想根据
使用临时存储过程-- test if folder exists, else create it
create procedure #mycheckcreatefolder
(
@rootfolder NVARCHAR(MAX),
@subfolder NVARCHAR (MAX)
)
as
BEGIN
declare @full_path as NVARCHAR(MAX)
declare @folder_exists as int
declare @file_results table
(file_exists int, file_is_a_directory int, parent_directory_exists int)
select @full_path = @rootfolder + @subfolder
insert into @file_results
(file_exists, file_is_a_directory, parent_directory_exists)
exec master.dbo.xp_fileexist @full_path
select @folder_exists = file_is_a_directory
from @file_results
--script to create directory
if @folder_exists = 0
begin
print 'Directory does not exist, creating new one'
EXECUTE master.dbo.xp_create_subdir @full_path
print @full_path + 'created on' + @@servername
end
else
print 'Directory already exists'
END;
GO
-- use the stored procedure
但是当我重复执行查询时,我得到
Msg 2714, Level 16, State 3, Procedure #mycheckcreatefolder, Line 30
There is already an object named '#mycheckcreatefolder' in the database.
第 30 行是 "print 'Directory already exists'"。
我已经删除了下面的所有代码,错误仍然弹出。
同时添加
drop procedure #mycheckcreatefolder
最后没有帮助,就像开始时有条件的下降一样,从那时起我得到的错误是 "create procedure" 需要成为第一条指令。
怎么了?
IF OBJECT_ID('tempdb..#mycheckcreatefolder') IS NOT NULL
DROP PROCEDURE dbo.#mycheckcreatefolder
GO
CREATE PROCEDURE dbo.#mycheckcreatefolder
AS
PRINT 'test';
if object_id('tempdb..#sp_today') is not null drop proc #sp_today;
go
create proc #sp_today as
select getdate() as dt;
您应该在 tempdb
中搜索它,而不是在当前数据库中搜索