Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何保存存储过程?_Sql_Sql Server 2008 - Fatal编程技术网

Sql 如何保存存储过程?

Sql 如何保存存储过程?,sql,sql-server-2008,Sql,Sql Server 2008,我今天一直在玩存储过程。我很激动,因为我很容易就学会了它的基本原理。(我也将很快尝试触发器) 现在,我想知道如何将存储过程保存在存储过程文件夹(Programmability->storageprocedure)下,以便按名称访问它(最终从我的C#应用程序)。到目前为止,当我按下save图标时,建议我保存整个查询。那不是我想要的 感谢您的帮助您必须实际运行CREATEPROC语句 实际上,您必须运行CREATE PROCEDURE命令,以便生成存储过程 以下是直接从MSDN页面获得的示例: U

我今天一直在玩存储过程。我很激动,因为我很容易就学会了它的基本原理。(我也将很快尝试触发器)

现在,我想知道如何将存储过程保存在存储过程文件夹(Programmability->storageprocedure)下,以便按名称访问它(最终从我的C#应用程序)。到目前为止,当我按下save图标时,建议我保存整个查询。那不是我想要的


感谢您的帮助

您必须实际运行CREATEPROC语句

实际上,您必须运行
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
请记住,创建存储过程后,必须
右键单击->刷新
存储过程文件夹,才能显示新过程

我还建议将*.sql文件保存在某个地方,以便在某个地方有
创建过程
脚本,以防需要再次运行。

您需要运行命令。
请尝试以下简单的存储过程示例:

CREATE PROCEDURE TestSP
AS
SELECT GETDATE() AS MyDate
GO

根据OP的评论:

我已经使用EXEC命令运行了它,并且 工作。当我没有看到狂欢的时候 在存储过程文件夹下,我 虽然不是我创造的。所以我试过了 我想再创造一次,但有人告诉我 使用相同名称的对象 已经存在了。我想我能做到 创造它。但是,为什么它不可见呢 在可编程性-->下存储 程序文件夹

首次运行存储过程
CREATE procedure…
时,可能需要刷新SSMS中的存储过程列表。右键单击然后刷新。

步骤:

  • 在查询窗口中编写存储过程命令
  • 运行查询
  • 刷新整个数据库,而不是存储过程文件夹
  • 您将看到存储过程名称。:)
    @Mladen Prajdic:我已经使用EXEC命令运行了它,它工作了。当我没有看到存储过程文件夹下的存储过程时,我认为我没有创建它。所以我尝试再次创建它,但我被告知同名的对象已经存在。我想我能创造它。但是,为什么它在Programmability-->存储过程文件夹下不可见?@Richard77,您需要点击刷新按钮才能看到它。突出显示存储过程文件夹,然后单击“刷新”,您应该会看到它。SQLServerManagementStudio(可能还有服务器资源管理器)不会自动刷新。@JustinNiesser(以及所有人):谢谢,它成功了。然而,很抱歉,我没有得到你的推荐。我需要将创建过程脚本保存在某个地方,以防我需要再次运行什么?存储过程?我是否需要在每次需要使用时都创建它?您不需要在每次使用时都创建它,但如果您需要修改它或重建数据库,备份它会很好。您还可以继续使用*.sql文件进行更改并删除/重新创建过程,而不是运行ALTER PROCEUDRE命令。尼尔森:我明白您的意思了。此外,.sql文件应该在源代码管理中,因此您可以在应用程序的其余更改中部署它。