前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >存储过程----sqlserver

存储过程----sqlserver

作者头像
cultureSun
发布2023-05-18 14:22:33
1.1K0
发布2023-05-18 14:22:33
举报
文章被收录于专栏:cultureSun学安全cultureSun学安全

简介

存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。--摘自百度百科

存储过程详解

创建语法

代码语言:javascript
复制
create proc | procedure 存储名(
  [{@参数 数据类型} [=默认值] [out|output],
   {@参数 数据类型} [=默认值] [out|output],
  ....]
)
as
begin
   SQL_statements
end

SQL

out

输出变量

output

输入输出变量

默认

输入变量

创建实例

  1. 没有参数
代码语言:javascript
复制
CREATE procedure PROC_NAME
AS
begin
   SELECT 1,2
end
GO

SQL

  1. 有参数
代码语言:javascript
复制
CREATE procedure PROC_NAME(@var int=0)
AS
begin
   SELECT test_column from test_table where test_column=@var;
end
GO
或者
CREATE procedure PROC_NAME
   @var int=0
AS
begin
   SELECT SELECT test_column from test_table where test_column=@var;
end
GO

SQL

  1. 通配符参数
代码语言:javascript
复制
CREATE procedure PROC_NAME
   @var varchar(128)='%a'
AS
begin
   SELECT test_column from test_table where test_column like @var;
end
GO

SQL

4.输出参数

代码语言:javascript
复制
CREATE procedure PROC_NAME
  @var int out
  @var int output
AS
begin
   SELECT @var=1,@var2=2
end
GO

SQL

执行语法

execute proc_name | exec proc_name

执行实例

代码语言:javascript
复制
对应第一个创建实例
exec proc_name;

第二个
exec proc_name
exec proc_name 2

第三个
exec proc_name
exec proc_name 'aa'
exec proc_name 'a%a'

第四个
declare @var int       #输出参数传空变量接受值
declare @var2 int      #输入输出参数可以传有值变量
set @var2=1
exec proc_name @var out @var2 output
select @var,@var2      #查询结果1,2

SQL

修改语法

代码语言:javascript
复制
ALTER proc|procedure 存储名
AS
   SQL语句
GO

SQL

修改实例

代码语言:javascript
复制
ALTER procedure PROC_NAME
AS
   SELECT 1,2,3
GO

SQL

删除语法

delete proc|procedure 存储名

删除实例

delete proc proc_name

常用的系统存储过程

代码语言:javascript
复制
exec sp_databases; --查看数据库
exec sp_tables;        --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;

SQL

结束语

注意:参数不能用来做表名或者列名,可以用exec函数来实现。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 存储过程详解
    • 创建语法
      • 创建实例
        • 执行语法
          • 执行实例
            • 修改语法
              • 修改实例
                • 删除语法
                  • 删除实例
                  • 常用的系统存储过程
                  • 结束语
                  相关产品与服务
                  对象存储
                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档