如何编写存储过程?

时间:2011-11-10 15:32:42

标签: sql sql-server stored-procedures

我正在学习如何编写存储过程。我有点得到它,但我没有。 我知道它会像这样......

CREATE PROCEDURE|PROC <sproc name>
[<parameter name> [schema.]<data type> [VARYING] [=<default value>] [OUT[PUT]]
[READONLY]
[,<parameter name> [schema.]<data type> [VARYING] [=<deafult value>] [OUT[PUT]]
[READONLY]
[,...
  ...
   ]]
[WITH 
  RECOMPILE|ENCRYPTION|[EXECUTE AS{ CALLER|SELF|OWNER|<'user name'>}]
[FOR REPLICATION]
AS
 <code> | EXTERNAL NAME <assembly name>.<assembly class>.<method>

所以我坚持下去并且我试图理解这是..编写一个存储过程,接受一个区域ID,区域描述和区域ID,并将它们作为新行插入Northwind的Territories表中。

好的,所以我知道我可以做这样的事情我相信:

USE Northwind
GO
CREATE PRO spTerritory
AS
SELECT Territory ID,Territory Description,RegionID
From dbo.Territories

但后来我错了。但我不知道在哪里插入作为表中的新行。我知道我会在这条线上使用类似@new或@rows的东西。如果有人可以帮助我了解谁做了一个蠢货我会很高兴。

3 个答案:

答案 0 :(得分:10)

您正在寻找INSERT声明。

CREATE PROCEDURE InsertTerritory (
     @territoryId int
    ,@territoryDescription nvarchar(200)
    ,@regionId int)
AS
BEGIN

    INSERT INTO Territories (Id, [Description], RegionId)
    VALUES (@territoryId, @territoryDescription, @regionId)

END
GO

答案 1 :(得分:2)

答案 2 :(得分:0)

USE [SchoolData] 开始

用于获取所有数据

将ANSI_NULLS设置为ON 走 将QUOTED_IDENTIFIER设置为ON 走 创建过程[dbo]。[GetDepartment] 如 从部门中选择ID,名称,说明,Is IsDeleted = 0