Sqlserver函数之SCOPE_IDENTITY()demo

摘要:
在解释之前发布代码--=============================================--使用以下命令从TemplateExplorer生成的模板:--CreateProcedure.SQL----使用TemplateParameters的指定值--命令填充下面的参数--值。----此注释块不包含在程序的定义中。========================================SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO-=============================================--作者:Fuyuanzhao--创建日期:2011-3-25--描述:添加测试数据--================================CREATEPROCEDUREAddTexts--Addtheparametersforthestoredprocedurehere@Textsnvarchar,@idintoutputASBEGIN--添加SETNOCOUNTON以防止外部结果集--与SELECT语句发生冲突。SETNOCOUNTOff;--此设置为OFF,将返回受影响的行数。如果设置为ON,则不会返回受影响的行数--Insertstatementsforprocedurehereinsertintotab1valuesset@id=SCOPE_ IDENTITY()ENDGO这是一个将数据插入表tab1的存储过程,需要两个参数。这个存储过程非常简单,不再赘述。如果你需要解释,请留言。

  之前有看到有人给我留言说希望有个SCOPE_IDENTITY()函数的demo,今天得闲,就整了个出来,希望对大家有帮助.既然做了就从头开始吧,先创建一个表,如果下

create table Tab1
(
id
int identity primary key,
Texts
nvarchar(50)
)

表结构很简单,就两个字段,一个ID,一个texts,ID是个整型自增长的主键,texts是个长度为50个字符的字符类型。表建好后,写存储过程。先贴代码再解释。

-- ================================================
--
Template generated from Template Explorer using:
--
Create Procedure (New Menu).SQL
--
--
Use the Specify Values for Template Parameters
--
command (Ctrl-Shift-M) to fill in the parameter
--
values below.
--
--
This block of comments will not be included in
--
the definition of the procedure.
--
================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
--
Author: Fuyuanzhao
--
Create date: 2011-3-25
--
Description: 添加测试数据
--
=============================================
CREATE PROCEDURE AddTexts
-- Add the parameters for the stored procedure here
@Texts nvarchar(50),@id int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT Off;--这里设置为OFF,这样会返回影响的行数,如果设置为ON这不会返回影响的行数

-- Insert statements for procedure here
insert into tab1(texts)values(@Texts)
set @id=SCOPE_IDENTITY()
END
GO

这是个往表tab1里插入数据的存储过程,需要两个参数。这存储过程很简单,就不再解释了,如有需要解释的请留言。存储过程写完后就是程序中怎么来调用存储过程,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace TestWeb
{
public partial class AddTextsProcedure : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection SqlConnection
= new SqlConnection("SqlConnectionString");
try {
using (SqlCommand SqlCommand = new SqlCommand("AddTexts", SqlConnection))
{
SqlCommand.CommandType
= CommandType.StoredProcedure;
SqlCommand.Parameters.Add(
"@Texts",SqlDbType.NVarChar,50).Value="张三";
SqlCommand.Parameters.Add(
"@id", SqlDbType.Int, 8).Value = 0;
SqlCommand.Parameters[
"@id"].Direction = ParameterDirection.Output;
if (SqlCommand.ExecuteNonQuery() == 1)
{
int ID = (int)SqlCommand.Parameters["@id"].Value;
}

}
}
catch (Exception ex)
{
#if DEBUG
throw ex;
#else
#endif
}
finally
{
SqlConnection.Close();
}
}
}
}
这只是个简单的demo,我们往表tab1里插入了“张三",我们的到的是张三的ID

免责声明:文章转载自《Sqlserver函数之SCOPE_IDENTITY()demo》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# socket编程第三篇求助 加载配置文件时出错,未能开始监视对web.config的更改下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL语句中output的用法

在SQL语句中,output可以作为返回值来使用, 1.我们先看这个存储过程 代码: 1 set ANSI_NULLS ON2 set QUOTED_IDENTIFIER ON3 go4 5 --added by hendyzhu 验证身份证的唯一性,排除同一个人有多个居民健康档案6 --2010-5-287 create procedure [dbo].[...

存储过程优点

储过程的优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3.存储过程可以重复使用...

【转】SQL Server 索引结构及其使用(三)

SQL Server 索引结构及其使用(三)作者:freedk 一、深入浅出理解索引结构二、改善SQL语句实现小数据量和海量数据的通用分页显示存储过程建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数...

plsql 存储过程 介绍。

/*7-22 知识总结? 1. 存储过程 2.函数 3.包 */ /*1.什么是存储过程? 语法? 存储过程:类似于Java中的方法;完成一个特定的功能,一系列代码 (增删改操作和一些逻辑判断,select ... Into 变量)构成;存在哪?存在数据库服务器上 特点: 1、预编译 2、可以重用 3、单独的设...

一次library cache pin故障的解决过程

在dbsnake 上看到的这篇文章,转过来。 主要还是学习解决问题的一个思路。这个往往比问题的解决更重要。 原文链接如下: http://dbsnake.com/2010/06/solve-library-cache-pin.html 内容如下: 今天接到同事的电话,说他的一个存储过程已经run了一个多小时了,还在继续run,他觉得极不正常,按道理说不应该...

MySQL存储过程

存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装...