SqlServer存储过程基础

开篇

小弟非常向往那些技术大牛们的文章,天天看到大牛们的博客感觉很高深,为了以后也能成为一个技术大牛,小弟今天也要开始写博客了,望各位大哥帮助一下,共同进步.由于小弟目前小弟才疏学浅,要是有写的不好的地方,忘大牛们指出.谢谢了.

最近面试发现公司都要求会好多种数据库,弄得小弟压力好大,我今天算是总结一下我学习的SqlServer里面的一些基本内容吧.

一.不带输入输出参数

 1 USE Northwind;
 2 GO
 3
 4 IF exists (select * from dbo.sysobjects where id =object_id(N‘[dbo].[sp_name]‘) and OBJECTPROPERTY(id, N‘IsProcedure‘)= 1)
 5 BEGIN  --判断数据库中是否已经存在该存储过程
 6   DROP PROCEDURE sp_name;
 7 END
 8 GO
 9 CREATE PROCEDURE sp_name
10 AS
11 BEGIN
12    SELECT * FROM Employees
13 END
14 EXEC sp_name;

二.带输入参数

 1 IF exists (select * from dbo.sysobjects where id =object_id(N‘[dbo].[sp_Employees_GetById]‘) and OBJECTPROPERTY(id, N‘IsProcedure‘)= 1)
 2 BEGIN  /*判断数据库中是否已经存在该存储过程*/
 3   DROP PROCEDURE sp_Employees_GetById;
 4 END
 5 GO
 6 CREATE PROCEDURE sp_Employees_GetById
 7 (
 8 @LastName varchar(20),
 9 @FirstName varchar(20)
10 )
11 AS
12 BEGIN
13   SELECT TOP 3 * FROM Employees e WHERE e.FirstName = @FirstName AND e.LastName = @LastName;
14 END
15 --执行
16 EXEC sp_Employees_GetById ‘Davolio‘,‘Nancy‘;

时间: 2024-10-05 06:53:52

SqlServer存储过程基础的相关文章

SqlServer存储过程基础小结

1.存储过程创建 1 CREATE PROCEDURE sys.sp_student 2 @id int, 3 @name varchar(20), 4 @age int 5 AS 6 BEGIN 7 SELECT * from Student WHERE Id=@id 8 END 9 GO 2.参数定义 @id int, @name varchar(20) @age int OUTPUT --OUTPUT表示为输出参数 declare @where varchar(200) --declare

对sqlserver存储过程合游标的一些理解

在最近老板给我的数据库操作要求中,有一张类似购物清单样式的表,表中有客户ID,商品ID,商品数量,单价和商品总价,出售日期.还有一张商品折扣信息表,在这基础上商品价格同一商品价格会有差异,不同客户最高折扣额不同,折扣率也有差异,要求用sqlserver存储过程合游标表诉 一开始根本没有思路和头绪,听老大讲解是要用存储过程将查询到的数据存储好,再用游标循环遍历.对于存储过程合游标的表诉一直不太熟,之前只是将用sql语句查到的结果集放到存储过程里面,对于游标的了解不够深入.所以一开始也是想着用sql

SqlServer存储过程(增删改查)

* IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( @NewsTitle varchar(200), @NewsContent varchar(4000), @Creator varchar(50), @LastNewsId int output, @DepartId int ) AS BEGIN SET NOCOUNT ON; insert int

SQLSERVER 数据库基础操作

1.修改表中字段的长度,类型为varchar,从30改到50 语句执行(注:当前为30): alter table 表名 alter column 列名 varchar(50) 2.增加字段: alter table 表名 add 字段 varchar(50) SQLSERVER 数据库基础操作,布布扣,bubuko.com

SqlServer存储过程传入Table参数

今天是周日,刚好有空闲时间整理一下这些天工作业务中遇到的问题. 有时候我们有这样一个需求,就是在后台中传过来一个IList<类>的泛型集合数据,该集合是某个类的实例集合体,然后将该集合中的实例的数据一个个地插入到数据库或者更新到数据库中去.一开始我想到的方法是拼接字符串,然后通过存储过程对接收到的字符串进行截取,再一个个地插入或者更新到数据库中去,这是最原始的方法,不过过程会比较复杂,想到这就头疼.后来查找发现说SqlServer2008中为存储过程添加了一个新特性,可以传递表类型的参数,既然

SQLSERVER存储过程语法具体解释

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq

SQLServer存储过程基本语法

SQLSERVER: 变量的声明:声明变量时必须在变量前加@符号DECLARE @I INT 变量的赋值:变量赋值时变量前必须加setSET @I = 30 声明多个变量:DECLARE @s varchar(10),@a INT if语句: Java代码 if .. begin ... end else if .. begin ... end else begin ... end Example: Sql代码 DECLARE @d INT set @d = 1 IF @d = 1 BEGIN

sqlserver 存储过程中拼接sql语句 动态执行

ALTER PROC [dbo].[Student_Friend_Get] @startRowIndexId INT, @maxNumberRows INT, @schoolId INT, @gradeId INT, @cId INT, @keyWords NVARCHAR(100), @userName VARCHAR(50) AS BEGIN DECLARE @sqlfilter VARCHAR(max) SET @sqlfilter = ' ' IF(@schoolId <> -1) S

SQLSERVER存储过程语法详解

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq