我一直在玩存储过程。我很激动,我很容易就选择了它的基础。 (我也会尽快尝试触发器)。现在,我想知道如何将SPROC保存在存储过程文件夹(Programmability - > Stored Procedure)下,以便我可以通过名称(最终从我的C#应用程序)访问它。到目前为止,当我按下保存图标时,我建议保存整个查询。这不是我想要的。如何保存存储过程?
感谢您的帮助
我一直在玩存储过程。我很激动,我很容易就选择了它的基础。 (我也会尽快尝试触发器)。现在,我想知道如何将SPROC保存在存储过程文件夹(Programmability - > Stored Procedure)下,以便我可以通过名称(最终从我的C#应用程序)访问它。到目前为止,当我按下保存图标时,我建议保存整个查询。这不是我想要的。如何保存存储过程?
感谢您的帮助
实际上,您必须运行CREATE PROCEDURE
命令才能生成存储过程。
下面是一个例子,直接从MSDN页:
USE AdventureWorks;
GO
-- If procedure exists already, drop it
IF OBJECT_ID ('HumanResources.uspGetAllEmployees', 'P') IS NOT NULL
DROP PROCEDURE HumanResources.uspGetAllEmployees;
GO
-- Create (or Re-create) the procedure
CREATE PROCEDURE HumanResources.uspGetAllEmployees
AS
SET NOCOUNT ON;
SELECT LastName, FirstName, JobTitle, Department
FROM HumanResources.vEmployeeDepartment;
GO
请记住,您创建存储过程后,你将不得不Right Click -> Refresh
新程序出现Stored Procedure文件夹。
我还建议将* .sql文件保存在某处,以便在需要再次运行的情况下将CREATE PROCEDURE
脚本保存在某处。
您必须实际运行create proc语句。
@Mladen Prajdic:我使用EXEC命令运行它,它工作。当我没有在Stored Procedure文件夹下看到SPROC时,我虽然没有创建它。所以我试图再次创建它,但我被告知具有相同名称的对象已经存在。我想我能够创造它。但是,为什么它在可编程性 - >存储过程文件夹下不可见? – Richard77 2010-04-19 19:46:40
@ Richard77,你需要点击刷新按钮才能看到它。突出显示“存储过程”文件夹,然后单击刷新,您应该可以看到它。 SQL Server Management Studio(也可能是服务器资源管理器)不会自动刷新。 – 2010-04-19 19:55:22
您需要运行CREATE PROCEDURE命令。
尝试用这种简单的存储过程例子:
CREATE PROCEDURE TestSP
AS
SELECT GETDATE() AS MyDate
GO
基础上OP的评论:
我使用EXEC命令来运行它,它 工作。当我没有在Stored Procedure文件夹下看到SPROC 时,我仍然没有创建它。所以我试着 再次创建它,但我被告知 已经存在具有相同名称 的对象。我想我能够 创建它。但是,为什么它不可见 下的Programmability - >存储 过程文件夹?
当您第一次运行存储过程CREATE PROCEDURE....
时,可能需要刷新SSMS中的存储过程列表。右键点击REFRESH。
+1对于* .sql建议。 – systempuntoout 2010-04-19 19:54:32
@Justin Niesser(和所有):谢谢,它工作。但是,我很抱歉,我没有真正得到您的建议。我需要将CREATE PROCEDURE脚本保存在某个地方以防我需要再次运行它。存储过程?每次需要使用它时,我是否需要创建它? – Richard77 2010-04-19 20:04:05
每次使用它时都不需要创建它,但是如果需要修改它或重建数据库......备份起来很不错。您还可以继续使用* .sql文件进行更改并删除/重新创建该过程,而不是运行ALTER PROCEUDRE命令。 – 2010-04-19 20:07:40