求简单存储过程?
CREATE TABLE [dbo].[t_user](
[vID] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vID] DEFAULT (''),
[vName] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vName] DEFAULT (''),
[vGrade] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vGrade] DEFAULT (''),
[dBrithday] [smalldatetime] NOT NULL,
[bSex] [bit] NOT NULL CONSTRAINT [DF_t_user_bSex] DEFAULT ((0)),
[vReMark] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_t_user_iSum] DEFAULT ((0))
) ON [PRIMARY]
CREATE TABLE [dbo].[t_details](
[iAutoID] [int] IDENTITY(1,1) NOT NULL,
[vID] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_details_vID] DEFAULT (''),
[vChinese] [float] NULL CONSTRAINT [DF_t_details_vChinese] DEFAULT ((0)),
[vMaths] [float] NULL CONSTRAINT [DF_t_details_vMaths] DEFAULT ((0)),
[vEnglish] [float] NULL CONSTRAINT [DF_t_details_vEnglish] DEFAULT ((0)),
CONSTRAINT [PK_t_details] PRIMARY KEY CLUSTERED
(
[iAutoID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
alter PROCEDURE Updat_tb @Is_Insert int,
@vID varchar(20),
@vName2 varchar(20),
@vGrade varchar(10),
@Dbrithday varchar(20) ,
@bSex bit,
@dChinese float,
@dMaths float,
@dEnglish float,
@vRemark varchar(200)
as
if @Is_Insert =1
begin
INSERT INTO [t_user]([vID],[vName],[vGrade],[dBrithday],[bSex],[vReMark])
VALUES(@vID,@vName2,@vGrade,@Dbrithday,@bSex,@vRemark)
INSERT INTO [t_details]([vID],[vChinese],[vMaths],[vEnglish])
VALUES(@vID, @dChinese,@dMaths,@dEnglish)
end
Else
Delete [t_user] where [vID] =@vID
Delete [t_details] where [vID] =@vID
INSERT INTO [t_user]([vID],[vName],[vGrade],[dBrithday],[bSex],[vReMark])
VALUES(@vID,@vName2,@vGrade,@Dbrithday,@bSex,@vRemark)
INSERT INTO [t_details]([vID],[vChinese],[vMaths],[vEnglish])
VALUES(@vID, @dChinese,@dMaths,@dEnglish)
我执行 exec Updat_tb 1,'aaa','b','mm','02/23/2011',1,80,90.5,70,'aaaaa'
为什么在[t_details]表中会插入两条相同的记录..
应该在[t_details]表中只会插入一条记录..
[vID] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vID] DEFAULT (''),
[vName] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vName] DEFAULT (''),
[vGrade] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_user_vGrade] DEFAULT (''),
[dBrithday] [smalldatetime] NOT NULL,
[bSex] [bit] NOT NULL CONSTRAINT [DF_t_user_bSex] DEFAULT ((0)),
[vReMark] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_t_user_iSum] DEFAULT ((0))
) ON [PRIMARY]
CREATE TABLE [dbo].[t_details](
[iAutoID] [int] IDENTITY(1,1) NOT NULL,
[vID] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_t_details_vID] DEFAULT (''),
[vChinese] [float] NULL CONSTRAINT [DF_t_details_vChinese] DEFAULT ((0)),
[vMaths] [float] NULL CONSTRAINT [DF_t_details_vMaths] DEFAULT ((0)),
[vEnglish] [float] NULL CONSTRAINT [DF_t_details_vEnglish] DEFAULT ((0)),
CONSTRAINT [PK_t_details] PRIMARY KEY CLUSTERED
(
[iAutoID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
alter PROCEDURE Updat_tb @Is_Insert int,
@vID varchar(20),
@vName2 varchar(20),
@vGrade varchar(10),
@Dbrithday varchar(20) ,
@bSex bit,
@dChinese float,
@dMaths float,
@dEnglish float,
@vRemark varchar(200)
as
if @Is_Insert =1
begin
INSERT INTO [t_user]([vID],[vName],[vGrade],[dBrithday],[bSex],[vReMark])
VALUES(@vID,@vName2,@vGrade,@Dbrithday,@bSex,@vRemark)
INSERT INTO [t_details]([vID],[vChinese],[vMaths],[vEnglish])
VALUES(@vID, @dChinese,@dMaths,@dEnglish)
end
Else
Delete [t_user] where [vID] =@vID
Delete [t_details] where [vID] =@vID
INSERT INTO [t_user]([vID],[vName],[vGrade],[dBrithday],[bSex],[vReMark])
VALUES(@vID,@vName2,@vGrade,@Dbrithday,@bSex,@vRemark)
INSERT INTO [t_details]([vID],[vChinese],[vMaths],[vEnglish])
VALUES(@vID, @dChinese,@dMaths,@dEnglish)
我执行 exec Updat_tb 1,'aaa','b','mm','02/23/2011',1,80,90.5,70,'aaaaa'
为什么在[t_details]表中会插入两条相同的记录..
应该在[t_details]表中只会插入一条记录..
...全文
相关推荐
sql存储过程几个简单例子
**创建存储过程**: - 在例1中,我们看到了如何创建一个简单的存储过程`proc_stu`,它接受两个输入参数`sname`和`pwd`,然后查询`ren`表中对应名字和密码的记录。
一个MySQL的简单存储过程
### MySQL中的简单存储过程知识点详解#### 一、存储过程简介存储过程是SQL语句与可选控制流语句的预编译集合,存储在数据库中,通过一个名称来调用它。存储过程可以接收输入参数并返回输出参数。
oracle的一个简单存储过程实例
在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。
Mybatis调用MySQL存储过程的简单实现
MyBatis作为一款流行的Java持久层框架,提供了调用数据库存储过程的功能。本文将详细介绍如何使用MyBatis调用MySQL存储过程,以及存储过程的相关概念、优缺点和基本语法。
mysql存储过程简单应用编写
在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。首先,让我们了解一下什么是存储过程。


