附上SQL Server的存储过程例子
代码如下,看了就明白:
--添加项目大类存储过程
use chaiqianD2
go if object_id('p_InsertBigType', 'p') is not null
drop procedure p_InsertBigType go
create procedure p_InsertBigType
@Name nvarchar(50) --[大类名称]
as
begin
insert into
[项目大类]([大类名称])
values(@name)
end
2、稍微难点滴,大部分都用不上吧
--添加户主和家庭信息
USE chaiqianD2 IF OBJECT_ID('p_InsertFamilyMember', 'p') IS NOT NULL
DROP PROCEDURE p_InsertFamilyMember GO
CREATE PROCEDURE p_InsertFamilyMember
@name NVARCHAR(20), --姓名
@sex CHAR(2), --性别
@idNumber NVARCHAR(20), --身份证号
@workUnit NVARCHAR(50), --工作单位
@workUnitAddress NVARCHAR(50), --工作单位地址
@accountAddress NVARCHAR(50), --户口所在地
@accountNature CHAR(10), --户口性质
@residentialAddress NVARCHAR(50), --居住地址
@mobileNumber CHAR(12), --手机号码
@remarks NVARCHAR(200), --备注
@titles NVARCHAR(10), --称谓
@nation NVARCHAR(15), --民族
@politicStatus NVARCHAR(20), --政治面貌 @familyId INT = NULL, --家庭编号
@accounts INT, --户口总数
@houseNature NVARCHAR(10), --房屋性质
@phoneNumber NVARCHAR(12), --电话号码
@familyAddress NVARCHAR(50), --家庭地址 @projectId INT, --拆迁项目编号
@priorityBusinessArea FLOAT, --可优购营业房面积
@priorityHousingArea FLOAT, --可优购住房面积 @typistId INT, --录入员职位流水号
@flag INT = 0 --标志信息,0:添加家庭成员, 1:添加户主信息和家庭信息
AS
BEGIN
SET XACT_ABORT ON;--这一句必须加上
BEGIN TRANSACTION myTran
--添加家庭信息
IF @flag = 1
BEGIN
INSERT INTO 家庭(家庭人口数目, 户口总数, 房屋性质, 电话号码, 家庭地址, 职位流水号_录入员)
VALUES (0,@accounts, @houseNature, @phoneNumber, @familyAddress,@typistId) --获取家庭编号
SELECT @familyId = MAX(家庭编号)
FROM 家庭
WHERE 职位流水号_录入员 = @typistId
END IF @flag = 1
BEGIN
INSERT INTO 家庭结算(拆迁项目编号, 家庭编号, 可优购营业房面积, 可优购住房面积)
VALUES (@projectId, @familyId, @priorityBusinessArea, @priorityHousingArea)
END --添加家庭成员
INSERT INTO 家庭成员(家庭编号, 姓名, 性别, 身份证号, 工作单位,工作单位地址, 户口所在地, 户口性质, 居住地址, 手机号码, 备注, 称谓, 民族, 政治面貌)
VALUES (@familyId, @name, @sex, @idNumber, @workUnit, @workUnitAddress, @accountAddress, @accountNature,@residentialAddress, @mobileNumber, @remarks, @titles, @nation, @politicStatus) --家庭人口数目加一
UPDATE 家庭
SET 家庭人口数目 = 家庭人口数目 + 1
WHERE 家庭编号 = @familyId
COMMIT TRANSACTION myTran
END
附上SQL Server的存储过程例子的更多相关文章
- 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...
- SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过 存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...
- SQL Server中存储过程 比 直接运行SQL语句慢的原因
问题是存储过程的Parameter sniffing 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- ADO.NET访问SQL Server调用存储过程带回参
1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...
- sql server触发器的例子
发布:thebaby 来源:脚本学堂 [大 中 小] 本文介绍下,在sql server数据库中使用触发器的简单例子,有需要的朋友可以参考下,希望对你有一定的帮助. 原文地址:http:/ ...
- SQL Server 优化存储过程的七种方法
原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会 ...
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
随机推荐
- 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误
多人协作开发的项目总会遇到代码编写风格上的差异.一般工具都能帮我们将常见的差异统一起来——例如 if 的换行:但也有一些不那么通用,但项目中却经常会出现的写法也需要统一. 例如将单元测试中的 Asse ...
- Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论
<后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...
- MySQL中大数字加减,不产生千位符和科学计数
mysql数字加减科学计数法 这两天因为需求,需要获取一张表的流水号.规则是这样的.当前日期+8位流水号.比如:2015062400000001,2015062400000002,2015062400 ...
- C#通过StreamWriter对象实现把数值内容写到记事本
本文介绍下,用C#实现将数组内容写到txt文件中的一例代码,有需要的朋友,参考下吧. 代码示例:StreamWriter sw=new StreamWriter("F:\\ex.txt&qu ...
- HDU4864 Task
题意 Today the company has m tasks to complete. The ith task need xi minutes to complete. Meanwhile, t ...
- POJ1220 Number Base Conversion
题意 Write a program to convert numbers in one base to numbers in a second base. There are 62 differen ...
- c# String.Split数组省去空字符
public static void test() { string txt = "hi[#b1.jpg][#b4.jpg]few[#b1-3.jpg]"; txt = " ...
- 笔记:使用 stylus stylus-loader
笔记:使用 stylus stylus-loader 安装 stylus Stylus-loader cnpm i stylus stylus-loader --save 配置 webpack.con ...
- Oracle 之 AIO (异步io)
Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能.它是Linux 2.6 版本内核的一个标准特性,AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等 ...
- foreach(PHP学习)
先来看一个例子: $arr = array(0,1,2,3,4);让数组的每个值都变成原来的两倍,应该怎么来实现? 如果没有学习foreach之前,会想到用for循环 <?php $arr = ...