`
jilong-liang
  • 浏览: 482477 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

我们来复习一下MSS 存储过程

SQL 
阅读更多

 

 
---创建数据库
create database CRM;
--删除数据库
drop database CRM;
--创建一个表
if exists(select * from sysobjects where name='Users')
drop table Users
go
create table Users(
    Id int identity(1,1) not null primary key, --顾客编号,主键按一进行自动增长
    UserName varchar(50)not null,
    PassWord varchar(50)not null,
    Address varchar(250)not null,
)
go
 
----------------------------------------插入条数据进Users表,进行下面对分页做准备----------------
Begin
    Declare @n bigint
    Declare @Sql nvarchar(225)
    set @n=0
    While @n<100--导入条相同的数据进Users表
    Begin
        Set @Sql='Insert into Users Values(''jilongliang'',''123456'',''广东阳春'')'
        Exec (@Sql) 
        set @n=@n+1
    End
End
 
------------查询一下是不是插入---------------
Select *from Users;
 
-------------------------存储过程创建语法-----------------------------------
/*
 1.存储过程创建语法
    create proc | procedure pro_name
        [{@参数数据类型} [=默认值] [output],
         {@参数数据类型} [=默认值] [output],
         ....
        ]
    as
        SQL_statements
 */
 
---------------------------------------------------------------------------------
-------------------------- 带参存储过程-----------------------------------
if (object_id('proc_find_users', 'P') is not null)
    drop proc proc_find_users
go
create proc proc_find_users(@startId int, @endId int)
 as
    ---between and 表示在那个两个数字之间
    select * from users where Id between @startId and @endId
go
 
exec proc_find_users 42, 64;
---------------------------------------------------------------------------------
--------------------------------带通配符参数存储过程-----------------------------
if (object_id('proc_findUsersByName', 'P') is not null)
    drop proc proc_findUsersByName
go
create proc proc_findUsersByName(@UserName varchar(20) = '%j%', @nextName varchar(20) = '%')
as
    select * from Users where UserName like @UserName and UserName like @nextName;
go
 
exec proc_findUsersByName;
exec proc_findUsersByName '%l%', 'j%';
 
---------------------------------------------------------------------------------------
 
----------------------------------------带输出参数存储过程---------------------------------------
if (object_id('proc_getUsersRecord', 'P') is not null)
    drop proc proc_getUsersRecord
go
create proc proc_getUsersRecord(
    @Id int,                    --默认输入参数
    @UserName varchar(20) out,  --输出参数
    @address varchar(20) output --输入输出参数
)
as
    select @UserName = UserName, @address = address  from Users where Id = @Id and Address = @address;
go
---------------声明变量
declare @id int,
        @address varchar(20),
        @UserName varchar(20),
        @temp varchar(20);
set @id = 71;
set @temp = 1;
exec proc_getUsersRecord @id, @UserName out, @temp output;
 
select @UserName as 用户名, @temp as temp,@address as 地址;
print @UserName + '#' + @temp;
---------------------------------------------------------------------------------------
 
 
-----------------------------------不缓存存储过程---------------------------------------
--WITH RECOMPILE 不缓存
if (object_id('proc_temp', 'P') is not null)
    drop proc proc_temp
go
create proc proc_temp
    with recompile
    as
        select * from users;
    go
exec proc_temp;
-----------------------------------加密存储过程-------------------------------------
 
--加密WITH ENCRYPTION
if (object_id('proc_temp_encryption', 'P') is not null)
    drop proc proc_temp_encryption
go
create proc proc_temp_encryption
with encryption
as
    select * from users;
go
 
exec proc_temp_encryption;
exec sp_helptext 'proc_temp';
exec sp_helptext 'proc_temp_encryption';
 
-----------------------------------带游标参数存储过程-------------------------------------
if (object_id('proc_cursor', 'P') is not null)
    drop proc proc_cursor
go
create proc proc_cursor
    @cur cursor varying output
as
    set @cur = cursor forward_only static for
    select Id, UserName, Address from Users;
    open @cur;
go
--调用
declare @exec_cur cursor;
declare @Id int,
        @UserName varchar(50),
        @Address varchar(250);
exec proc_cursor @cur = @exec_cur output;--调用存储过程
fetch next from @exec_cur into @Id, @UserName, @Address;
while (@@fetch_status = 0)
begin
    fetch next from @exec_cur into @Id, @UserName, @Address;
    print 'Id: ' + convert(varchar, @Id) + ', name: ' + @UserName + ', Address: ' +  @Address;
end
close @exec_cur;
deallocate @exec_cur;--删除游标
 
 
----------------------------------------------------------
select * from sys.messages;
--使用sysmessages中定义的消息
 
 
--------------------------------Query---------------------
 
Create PROCEDURE proc_LoginUser
@userName varchar(50),
@password varchar(50)
as
  begin
    select UserName,PassWord from Users
    where UserName = @userName
    and PassWord = @PassWord
 end
GO
--这个Go注意不要放在Exec后面,否则报超出了存储过程、函数、 
--触发器或视图的最大嵌套层数(最大层数为32)
exec proc_LoginUser @userName = 'admin',@PassWord = 'admin'
 
 
--------------------------------Insert---------------------
 
Create proc  proc_InsertUsers
    @UserName varchar(50),
    @PassWord varchar(50),
    @Address varchar(150)
as
insert into  proc_InsertUsers values(@UserName,@PassWord,@Address)
--------------------------------Update---------------------
--修改模块信息,根据模块Id
Create proc  proc_UpdateUser
    @UserName varchar(50),
    @PassWord varchar(50),
    @Address varchar(150),
    @Id int
as
update Users set UserName=@UserName,PassWord=@PassWord ,Address=@Address
  where Id = @Id
 
--------------------------------Delete---------------------
Create proc proc_DeleteById
 @Id int
as
delete from Users where Id=@Id
 
-----------------------------------------------------------
 
 
 
 
-------------------------------------------------------------------------------------
----------------------------------分页存储过程--------------------------------------
-------------------------------------------------------------------------------------
If (object_id('pro_page', 'P') is not null)
    drop proc proc_Page
GO
create procedure proc_Page(
    @pageIndex int,
    @pageSize int
)
as
    declare @startRow int, @endRow int                 --声明变量
    set @startRow = (@pageIndex - 1) * @pageSize +1    --设值
    set @endRow = @startRow + @pageSize -1             --设值
    select ID,UserName,Address,PassWord,t.number from  --t.number的行号
    (
        select ID,UserName,Address,PassWord, row_number()
        over (order by id asc) as number from Users
    ) t
    where t.number between @startRow and @endRow;
GO
----执行
exec proc_Page 1, 3; -- 一页,三条数据
-------------------------------------------------------------------------------------
 
 ---存储过程、row_number完成分页
if (object_id('pro_page', 'P') is not null)
   drop proc proc_cursor
--   drop proc pro_page
go
create proc pro_Page
    @startIndex int,
    @endIndex int
as
    select count(*) as Total from Users; --计算出来总数
    select * from (
        select row_number() over(order by Id) as rowId, * from Users
    ) temp
    where temp.rowId between @startIndex and @endIndex
go
exec pro_Page 1, 4
-------------------------------------------------------------------------------------
 
 
 
 
-------------------------------------数据库的函数--------------------------------------
exec sp_databases; --查看数据库
exec sp_tables;        --查看表
exec sp_columns users;--查看列
exec sp_helpIndex users;--查看索引
exec sp_helpConstraint users;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename users, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;
-------------------------------------------------------------------------------------
 
---------------------------数据库的sp_rename重命名函数-------------------------------
--表重命名
exec sp_rename 'users', 'tb_users';
select * from tb_users;
--列重命名
exec sp_rename 'tb_users.name', 'sName', 'column';
exec sp_help 'tb_users';
--重命名索引
exec sp_rename N'tb_users.idx_cid', N'idx_cidd', N'index';
exec sp_help 'tb_users';
 
--查询所有存储过程
select * from sys.objects where type = 'P';
select * from sys.objects where type_desc like '%pro%' and name like 'sp%';

 

 

0
2
分享到:
评论

相关推荐

    MSS2 固件下载 固件

    在IT领域,固件是一种特殊的软件,它存储在硬件设备的非易失性存储器中,控制设备的操作和功能。MSS2固件下载是指针对名为MSS2的特定设备或系统进行的固件更新过程。这个过程对于优化设备性能、修复已知问题或增加新...

    MSS使用手册

    MSS是一个用于管理和操作多媒体服务器的系统,主要用于存储、处理和分发各种媒体内容,如视频、音频、图像等。本手册旨在帮助用户熟悉MSS的功能,提供详细的步骤指导,确保用户能够有效地利用该系统。 1. **系统...

    mss2sql_v5-3.zip

    1. 数据库结构迁移:Mss2sql能够解析SQL Server的架构,包括表、视图、存储过程、函数等,并将其转换为MySQL兼容的格式。在转换过程中,工具会尽可能保持原有的数据库逻辑和结构,减少因平台差异导致的问题。 2. ...

    安全托管服务(MSS)资料合集.zip

    安全托管服务MSS介绍PPT 安全托管服务平台培训PPT 安全托管服务需求清单 安全托管服务白皮书 安全托管服务平台工具架构设计 安全托管服务业务设计 Web服务器安全监控防护托管服务主打胶片 华为安全托管服务主打胶片 ...

    MTU 和mss的学习总结

    实验环境中,我们可以通过ping命令的"-s"或"-M"选项来检查和调整MTU值,使用tcpdump等工具可以观察TCP段的MSS值。当遇到网络连通性问题,如丢包或延迟,检查和调整MTU和TCP-MSS设置可能是解决问题的有效手段。 当...

    SQL Server数据库转Mysql数据库的一款工具mss2sql

    SQL Server数据库转Mysql数据库的一款超好用的工具,亲测!!!!使用方式见:https://blog.csdn.net/er_916340246/article/details/88892823

    于ROS中mss,mtu的问题

    在探讨ROS(RouterOS)系统中的MSS(Maximum Segment Size)与MTU(Maximum Transmission Unit)时,我们首先需要理解这两个概念的基本含义及其相互之间的关系。 #### MTU (Maximum Transmission Unit) MTU指的是...

    mss.zip_mss 2.9

    在“mss_2.9”这个特定版本中,我们关注的是与MSS(可能是Multiple System Services或Microcontroller Subsystem)相关的更新和改进。 首先,我们需要理解RedBoot的核心功能。作为引导加载程序,RedBoot的主要任务...

    高分二号测试数据-MSS数据

    5. **GF2_PMS1_E116.2_N40.2_20140927_L1A0001065783-MSS1.xml**:这是XML(eXtensible Markup Language)文件,通常用来存储元数据,如图像的地理信息、时间戳、传感器参数等,这些信息对于正确解读和处理遥感数据...

    西门子之MSS有几种操作模式?.pdf

    西门子的模块化安全系统(Modular Safety System, 简称MSS)是西门子公司提供的一种安全自动化系统,它能够在工业控制系统中实现高度的灵活性和模块化。MSS的主要功能是用于监视和控制安全相关的功能,并且可以用于...

    mss32.dll缺的有用

    1. **安装不完整**:某些应用程序在安装过程中未能正确地复制mss32.dll到系统目录。 2. **文件损坏**:由于病毒、恶意软件或系统错误,mss32.dll文件可能被删除或破坏。 3. **系统更新**:某些Windows更新可能会删除...

    MSS-A SimulinkToolbox for Marine Control Systems.pdf

    MMS是一个针对航海系统的Matlab仿真包,包括舰船模型、水下设备模型和漂浮建筑物模型,同时还包括GNC模块。提供一些关于GNC的基本库和系统例子,库...如果要使用MSS GNC工具包,请参考下面网址:www.marinecontrol.org.

    mss2sql4.1,mssql数据库转mysql数据库

    1. 数据库结构:在转换过程中,mss2sql4.1会处理MSSQL中的表、视图、存储过程、触发器等数据库对象,将其映射到MySQL的相应结构中。 2. 数据类型映射:MSSQL和MySQL的数据类型有所不同,如MSSQL的NVARCHAR对应MySQL...

    SQL Server转Mysql的工具mss2sql

    3. 表结构差异:SQL Server和MySQL在数据类型、存储过程等方面可能存在差异,需要在迁移前进行适配。 4. 性能考虑:对于大规模数据库,迁移可能耗时较长,需合理安排迁移时间并监控系统资源。 5. 测试与验证:迁移后...

    中国联通企业信息化规划_IT架构_MSS部分

    中国联通企业信息化规划 IT架构-MSS部分 一、MSS目标系统架构 二、MSS关键系统介绍 ÿ 企业资源计划 ÿ 企业内部门户 ÿ 企业决策支持 ÿ 企业协同 四、MSS系统演进 五、典型业务场景

    TCP的最大传输单元MSS.PDF

    TCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDFTCP的最大传输单元MSS.PDF

    基于MSS的显著性检测算法

    【基于MSS的显著性检测算法】是一种计算机视觉领域的技术,用于识别图像中的显著区域,这些区域通常是图像中最吸引人注意的部分。MSS,全称为Multi-Scale Structure(多尺度结构),是由Zhang et al.在2013年提出的...

Global site tag (gtag.js) - Google Analytics