如何编写存储过程?

nor*_*023 5 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>
Run Code Online (Sandbox Code Playgroud)

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

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

USE Northwind
GO
CREATE PRO spTerritory
AS
SELECT Territory ID,Territory Description,RegionID
From dbo.Territories
Run Code Online (Sandbox Code Playgroud)

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

kev*_*v22 13

您正在寻找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
Run Code Online (Sandbox Code Playgroud)