MSSQL存储过程的功能和用法(简明扼要)

阅读: 评论:0

MSSQL存储过程的功能和用法(简明扼要)

MSSQL存储过程的功能和用法(简明扼要)

官方文档

存储过程(数据库引擎) - SQL Server | Microsoft Learn

Transact-SQL 参考(数据库引擎) - SQL Server | Microsoft Learn

定义

存储过程可以用编程语言的方法来类比,有输入输出。区别是其使用SQL表达业务过程。

举个例子(代码源自官方文档)

这里 use 指定数据库名,go 是SYBASE和SQL Server中用来表示事物结束,提交并确认结果,相当于ORACLE的Commit。关键字 procedure 后边则是对应的过程的名称及参数,as 后是具体内容

USE AdventureWorks2022;  
GO  
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2   @LastName nvarchar(50),   @FirstName nvarchar(50)   
AS   SET NOCOUNT ON;  SELECT FirstName, LastName, Department  FROM HumanResources.vEmployeeDepartmentHistory  WHERE FirstName = @FirstName AND LastName = @LastName  AND EndDate IS NULL;  
GO

执行

下面代码(源自官方文档)提供了三种执行存储过程的方式

EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';  
-- Or  
EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';  
GO  
-- Or  
EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';  
GO

更新

采用的是先删除创建的方法,看Sql中高亮的关键字

IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL   DROP PROCEDURE Purchasing.uspVendorAllInfo;  
GO  
CREATE PROCEDURE Purchasing.uspVendorAllInfo  
WITH EXECUTE AS CALLER  
AS  SET NOCOUNT ON;  SELECT v.Name AS Vendor, p.Name AS 'Product name',   v.CreditRating AS 'Rating',   v.ActiveFlag AS Availability  FROM Purchasing.Vendor v   INNER JOIN Purchasing.ProductVendor pv  ON v.BusinessEntityID = pv.BusinessEntityID   INNER JOIN Production.Product p  ON pv.ProductID = p.ProductID   ORDER BY v.Name ASC;  
GO

官方文档有很详细的说明哦。

本文发布于:2024-01-30 04:54:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170656165319363.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23