SQL 存储过程(转帖摘录)
篇一:
创建存储过程
Create Proc dbo.存储过程名
存储过程参数
AS
执行语句
RETURN
执行存储过程
GO
*********************************************************/
-- 变量的声明,sql里面声明变量时必须在变量前加@符号
DECLARE @I INT
-- 变量的赋值,变量赋值时变量前必须加set
SET @I = 30
-- 声明多个变量
DECLARE @s varchar(10),@a INT
-- Sql 里if语句
IF 条件 BEGIN
执行语句
END
ELSE BEGIN
执行语句
END
DECLARE @d INT
set @d = 1
IF @d = 1 BEGIN
-- 打印
PRINT '正确'
END
ELSE BEGIN
PRINT '错误'
END
-- Sql 里的多条件选择语句.
DECLARE @iRet INT, @PKDisp VARCHAR(20)
SET @iRet = 1
Select @iRet =
CASE
WHEN @PKDisp = '一' THEN 1
WHEN @PKDisp = '二' THEN 2
WHEN @PKDisp = '三' THEN 3
WHEN @PKDisp = '四' THEN 4
WHEN @PKDisp = '五' THEN 5
ELSE 100
END
-- 循环语句
WHILE 条件 BEGIN
执行语句
END
DECLARE @i INT
SET @i = 1
WHILE @i<1000000 BEGIN
set @i=@i+1
END
-- 打印
PRINT @i
-- TRUNCATE 删除表中的所有行,而不记录单个行删除操作,不能带条件
/*
TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系统和事务日志资源少。
Delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 Delete。如果要删除表定义及其数据,请使用 Drop TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 Where 子句的 Delete 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
示例
下例删除 authors 表中的所有数据。*/
TRUNCATE TABLE authors
-- Select INTO 从一个查询的计算结果中创建一个新表。 数据并不返回给客户端,这一点和普通的
-- Select 不同。 新表的字段具有和 Select 的输出字段相关联(相同)的名字和数据类型。
select * into NewTable
from Uname
-- Insert INTO Select
-- 表ABC必须存在
-- 把表Uname里面的字段Username复制到表ABC
Insert INTO ABC Select Username FROM Uname
-- 创建临时表
Create TABLE #temp(
UID int identity(1, 1) PRIMARY KEY,
UserName varchar(16),
Pwd varchar(50),
Age smallint,
Sex varchar(6)
)
-- 打开临时表
Select * from #temp
-- 存储过程
-- 要创建存储过程的数据库
Use Test
-- 判断要创建的存储过程名是否存在
if Exists(Select name From sysobjects Where name='csp_AddInfo' And
type='P')
-- 删除存储过程
Drop Procedure dbo.csp_AddInfo
Go
-- 创建存储过程
Create Proc dbo.csp_AddInfo
-- 存储过程参数
@UserName varchar(16),
@Pwd varchar(50),
@Age smallint,
@Sex varchar(6)
AS
-- 存储过程语句体
insert into Uname (UserName,Pwd,Age,Sex)
values (@UserName,@Pwd,@Age,@Sex)
RETURN
-- 执行
GO
-- 执行存储过程
EXEC csp_AddInfo 'Junn.A','123456',20,'男'
篇二:
存储过程的3种传回值:
1.以Return传回整数
2.以output格式传回参数
3.Recordset
传回值的区别:
output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中
篇三:
1.判断插入值是否重复:
事务和存储过程优化
2. 条件查询语句:
条件查询直接放在SQL中判断
SQL 存储过程(转帖摘录)的更多相关文章
- PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
- SQL存储过程分页(通用的拼接SQL语句思路实现)
多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...
- SQL存储过程的调用及写法
调用函数: public class SqlProcess { ; public DataSet ReturnSet = null; public SqlDataAdapter adapter = n ...
- sql存储过程几个简单例子
导读:sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解. 例1: cr ...
- SQL存储过程生成顺序编码
一.第一种方式 USE [WJKC]GO/****** Object: StoredProcedure [dbo].[Address_GetCode1] Script Date: 2016/3 ...
- SQL 存储过程入门(事务)(四)
SQL 存储过程入门(事务)(四) 本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...
- 在SQL存储过程中给条件变量加上单引号
在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) ), )), )+ ...
- SQL存储过程概念剖析
一.SQL存储过程的概念,优点及语法 定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execut ...
- sql 解析字符串添加到临时表中 sql存储过程in 参数输入
sql 解析字符串添加到临时表中 sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表 FROM dbo.Func_SplitOneCol ...
- 查询数据库后台Block 的Sql存储过程
查询数据库后台Block 的Sql存储过程 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO /*记录SQL Server的阻塞情况 wang 200 ...
随机推荐
- 在Struts等框架中获取Spring容器的方式
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(ServletContext src); ...
- 【bzoj4719】[Noip2016]天天爱跑步 权值线段树合并
题目描述 给出一棵n个点的树,以及m次操作,每次操作从起点向终点以每秒一条边的速度移动(初始时刻为0),最后对于每个点询问有多少次操作在经过该点的时刻为某值. 输入 第一行有两个整数N和M .其中N代 ...
- Codeforces Round #355 (Div. 2) C 预处理
C. Vanya and Label time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- P1613 跑路 (最短路,倍增)
题目链接 Solution 发现 \(n\) 只有 \(50\), 可以用 \(floyd\) . 然后 \(w[i][j][l]\) 代表 \(i\) 到 \(j\) 是否存在 \(2^l\) 长的 ...
- AtCoder Regular Contest 093 E: Bichrome Spanning Tree(生成树)
Bichrome Spanning Tree 题意: 给出一个n个点,m条边的无向连通图,现在要给每条边染色,可以染成黑色或者白色. 现在要求在染色完毕后,找出一个至少包含一条黑边和一条白边的最小生成 ...
- Python 二进制,十进制,十六进制转换
十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的数. 转化的结果是一个十进制数. >>> int('0xf ...
- 转一下网上找来的tortoise git不用每次都输入邮箱和密码的方法。备查看
每次git clone 和push 都要输入用户名和密码.虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢? 当你配置好git后,在C:\Documents and Settings\Ad ...
- 【问题帖】压缩图片大小至指定Kb以下
像PS,QQ影像等都有该功能,将图片大小压缩至指定kb以下. 我也来山寨一把,到目前为止,控制图片的大小,平时的解决方案通过分辨率和质量来控制的. 假定最后压缩的大小是100kb,那么在保证不大于10 ...
- 转载:C++ 多继承和虚继承的内存布局
C++ 多继承和虚继承的内存布局[已翻译100%] 英文原文:Memory Layout for Multiple and Virtual Inheritance 标签: <无> run_ ...
- web应用性能优化经验总结
常见性能优化要求 在我经历的性能优化案例中,常见的问题都是这样开始的: a) 前台访问很慢,请帮忙分析优化 b) 用户对性能很不满意,再不解决就要投诉 c) 数 ...