sql server 存储过程学习

原创 2013年12月03日 12:37:08
1.站点表里添加、更新数据

create PROCEDURE [dbo].[EDIT_STORE]
--定义一些变量
    @storeName nvarchar(50),
    @storeUrl nvarchar(50),
    @storeId int=null
AS
if(@storeId is null)
    begin
        update store set store_name=@storeName,store_url=@storeUrl where store_id=@storeId
    end
else
    if(exists (select store_id from store where store_url = @storeUrl))

    begin

--赋值
        set @storeId=(select top 1 store_id from store where store_url = @storeUrl)
        update store set store_name=@storeName,store_url=@storeUrl where store_id=@storeId
    end
    else
    begin
        insert into store (store_name,store_url) values (@storeName,@storeUrl)

    end


定义与使用游标的语句

    declare :
        declare  游标名[scroll]  cursor  for select语句[for update [of列表名]]
        定义一个游标,使之对应一个select语句
       for update任选项,表示该游标可用于对当前行的修改与删除
    open
       打开一个游标,执行游标对应的查询,结果集合为该游标的活动集
       open  游标名
    fetch
       在活动集中将游标移到特定的行,并取出该行数据放到相应的变量中
       fetch [next | prior | first | last | current | relative n | absolute m] 游标名into  [变量表]
    close
       关闭游标,释放活动集及其所占资源。需要再使用该游标时,执行open语句
       close  游标名
    deallocate
       删除游标,以后不能再对该游标执行open语句
       deallocate游标名
    @@FETCH_STATUS
        返回被FETCH语句执行的最后游标的状态.
       0 fetch语句成功
        -1 fetch语句失败
        -2 被提取的行不存在



游标的例子:
ALTER proc [dbo].[cusorInsert] @pId varchar(50) as
--局部变量 declare @id int
--声明游标 declare cur cursor for select product_category_id from product_category
--打开游标 open cur fetch next from cur into @id
--游标状态 0表示成功,用while循环 
while @@FETCH_STATUS=0 
begin 
insert into product(product_id,product_name,primary_product_category,product_length, product_width,product_height,product_weight,created_stamp,updated_stamp) 
values(@pId+ convert(varchar(30),@id),'ss',null,1,1,1,1,GETDATE(),GETDATE()) 
fetch next from cur into @id end
--关闭游标 close cur
--删除游标 deallocate cur











                    

相关文章推荐

sql server存储过程学习记录

 declare @name nvarchar(20)declare @kip nvarchar(20)if Exists(Select name From sysobjects Where name...

SQL Server学习:存储过程中Cursor(游标)的使用

SQL Server中的游标声名后,一定要显示的释放。若未释放,再次执行时,则会出现“游标XX已经存在”的异常。Open游标后,一定要显示的Close。 在存储过程中试用Cursor的示例: ...

SQL Server 学习笔记④ 查询某个数据所在数据库表中的哪个字段上出现过的存储过程

--2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型:1为文字类型、2为数值类型 @str nvarcha...

学习SQL SERVER的存储过程 

  CREATE PROCEDURE创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时...

SQL Server学习记录之存储过程

1、下面是创建存储过程SP_TFishSuperControl的脚本 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON use NewHn2015 go if ex...

sql server 通用分页存储过程

  • 2017年08月17日 14:10
  • 3KB
  • 下载

SQL Server在存储过程中编写事务处理代码的三种方法

原文来自于:SQL Server在存储过程中编写事务处理代码的三种方法SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql server 存储过程学习
举报原因:
原因补充:

(最多只允许输入30个字)