sqlserver 存储过程中If Else的用法实例
现在要通过编程向B表中插入数据,可是在程序中是不允许给Int类型赋空值的如果不赋值就默认为0。
为了解决这个问题,用到了存储过程的If Else,下面是完整的存储过程。
代码示例:
create PROCEDURE [dbo].[P_Form_Control_Info_Add]
@TypeName varchar(20),
@Description varchar(50),
@CtlColSpan int,
@Sort int,
@SourceID int,
@FieldID int,
@TableID int
AS
if @SourceID = 0
begin
INSERT INTO T_Form_Control_Info (
[TypeName],
[Description],
[CtlColSpan],
[Sort],
[FieldID],
[TableID]
) VALUES (
@TypeName,
@Description,
@CtlColSpan,
@Sort,
@FieldID,
@TableID
)
end
else
begin
INSERT INTO T_Form_Control_Info (
[TypeName],
[Description],
[CtlColSpan],
[Sort],
[SourceID],
[FieldID],
[TableID]
) VALUES (
@TypeName,
@Description,
@CtlColSpan,
@Sort,
@SourceID,
@FieldID,
@TableID
)
end
return SCOPE_IDENTITY()
相关推荐
-
SQL Server 分页查询存储过程代码
复制代码 代码如下: CREATE PROCEDURE [dbo].[up_Pager] @table varchar(2000), --表名 @col varchar(50), --按该列来进行分页 @orderby bit, --排序,0-顺序,1-倒序 @collist varchar(800),--要查询出的字段列表,*表示全部字段 @pagesize int, --每页记录数 @page int, --指定页 @condition varchar(800) --查询条件 AS DECL
-
sqlserver中查找所有包含了某个文本的存储过程
上图说明吧.上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了) 上图通过sqlserver 图形管理器自带的功能查看依赖于mup_GetA的对象. 结果有点雷人,居然没有列出mup_GetB 来(我使用的是sql server 2005) 下面是解决方法 方法1: 打开数据库管理界面->右击数据库->tasks->Generate Scripts->..... 导出所有存储过程到文件中,然后ctrl+F查找 方法2: 复制代码 代码如下: SELECT ROUTI
-
SQL Server存储过程同时返回分页结果集和总数
前言 好长时间没摸数据库了,周末在家写了个报表的存储过程,一时间对使用存储过程实现分页的同时并计算出记录总数不知道怎么更好的去实现.按照我们正常的业务逻辑,存储过程数据首先是分页,其次接受若干查询条件,返回分页结果集的同时还需要返回记录总数给客户端. 我对于这样一个业务存储过程总结如下:1.内核层,通常也就是要查询的字段或者要计算的字段,这部分单独拿出来. 2.查询条件层. 如果内核只是查询一些字段的话,条件可以放在查询条件层拼接. 如果内核层完全是统计业务逻辑,那么查询条件则必须要放在内核层
-
一些SQL Server存储过程参数及例子
Microsoft included several hundred stored procedures in the various versions of Microsoft SQL Server and it has documented a good percentage of them. But many stored procedures remain undocumented. Some are used within the Enterprise Manager GUI in S
-
SQL Server 2008 存储过程示例
--有输入参数的存储过程-- create proc GetComment (@commentid int) as select * from Comment where CommentID=@commentid --有输入与输出参数的存储过程-- create proc GetCommentCount @newsid int, @count int output as select @count=count(*) from Comment where NewsID=@newsid --返回单个
-
如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
今天突然有同事问起,如何在sqlserver中调试存储过程(我们公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真晕了. 于是琢磨了一下.SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本.非常不方便. 还好,SQLSERVER 2008中这个很重要而且方便的功能又回来了. 不过,SQLSERVER 2008的调试功能和SQL2000的方法差别很大.SQL
-
sqlserver 各种判断是否存在(表名、函数、存储过程等)
sql server中如何判断表或者数据库的存在,但在实际使用中,需判断Status状态位:其中某些状态位可由用户使用 sp_dboption(read only.dbo use only.single user 等)进行设置: 1 = autoclose:使用 sp_dboption 设置. 数据库完全关闭,其资源在最后一个用户注销后释放.4 = select into/bulkcopy:使用 sp_dboption 设置.允许使用 Select INTO 语句和快速大容量复制.8 = tru
-
Sql Server中存储过程中输入和输出参数(简单实例 一看就懂)
[sql] -- ===================[创建存储过程]===================== USE [Message] GO /****** Object: StoredProcedure [dbo].[读取外部数据库查询] Script Date: 10/24/2012 05:39:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ================================
-
sqlserver存储过程中SELECT 与 SET 对变量赋值的区别
SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值.当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法.下表列出 SET 与 SELECT 的区别.请特别注意红色部分. set select 同时对多个变量同时赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值 变量被赋null值 变量保持原值 下面以具体示例来说明问题:create table chinadba1(userid int ,addr varchar(1
-
SqlServer获取存储过程返回值的实例
1.OUPUT参数返回值 复制代码 代码如下: CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerid int ,@o_id bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerid )VALUES (@o_buyerid )SET @o_id = @@IDENTITYENDEND 存储过程中获得方法: 复制代码 代码如下: DECLARE @o_buyerid i
随机推荐
- python使用arp欺骗伪造网关的方法
- Nginx配置React项目Url后直接输入路由路径时报404问题的解决
- ART OF WEB-SQL-INJECTION第2卷 ORACLE篇
- java中enum的用法
- Java实现插入排序实例
- PHP4实际应用经验篇(9)
- javascript showModalDialog,open取得父窗口的方法
- Python实现简单的文件传输与MySQL备份的脚本分享
- JavaScript入门之基本函数详解
- 用css滤镜实现的文字描边效果的代码
- SQL Server高级内容之子查询和表链接概述及使用
- MongoDB数据库文档操作方法(必看篇)
- MSSQL 2005/2008 日志压缩清理方法小结
- jQuery中width()方法用法实例
- jQuery实现的简单分页示例
- 微信小程序 跳转方式总结
- C++获取本机MAC,IP,MASK地址的方法
- Android集成支付宝支付功能示例
- 浅析Javascript ES6新增值比较函数Object.is
- 原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面