当前位置:首页 » 编程语言 » sql存储的例子
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql存储的例子

发布时间: 2022-08-20 14:14:21

1. sql 存储过程 实例 贴源码就好了

例子:
CREATE
PROCEDURE
order_tot_amt
@o_id
int,
@p_tot
int
output
AS
SELECT
@p_tot
=
sum(Unitprice*Quantity)
FROM
orderdetails
WHERE
ordered=@o_id
GO
例子说明:
该例子是建立一个简单的存储过程order_tot_amt,这个存储过程根据用户输入的定单ID号码(@o_id),由定单明细表
(orderdetails)中计算该定单销售总额[单价(Unitprice)*数量(Quantity)],这一金额通过@p_tot这一参数输出给调用这一存储过程的程序。

2. 带输出参数的存储过程PL/SQL的小例子

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace StoreProceTest
{
public class Program
{
/**
* 存储过程
*
* create procere queryStuNameById
@stuId varchar(10),--输入参数
@stuName varchar(10) output --输出参数
as
select @stuName=stuName from stuInfo where stuId=@stuId
*
*/

static void Main(string[] args)
{
Operater op = new Operater();
string name = op.QueryStuNameById("1234");
Console.WriteLine(string.Format("学号为1234的学生的姓名为{0}", name));
}
}
public class Operater
{
private string ConStr = "server=.;database=User;uid=sa;pwd=1234";
private SqlConnection sqlCon = null;
private SqlCommand sqlComm = null;
SqlDataReader dr = null;
public string QueryStuNameById(string Id)
{
string name = "";
try
{
using (sqlCon = new SqlConnection(ConStr))
{
sqlCon.Open();
sqlComm = new SqlCommand("queryStuNameById", sqlCon);
//设置命令的类型为存储过程
sqlComm.CommandType = CommandType.StoredProcere;
//设置参数
sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);
//注意输出参数要设置大小,否则size默认为0,
sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);
//设置参数的类型为输出参数,默认情况下是输入,
sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;
//为参数赋值
sqlComm.Parameters["@stuId"].Value = "1234";
//执行
sqlComm.ExecuteNonQuery();
//得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
name = sqlComm.Parameters["@stuName"].Value.ToString();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return name;
}
}
}

3. mssql存储过程

MS
SQL基础教程:创建存储过程
在MS
SQL
Server
2000
中,创建一个存储过程有两种方法:一种是使用Transaction-SQL
命令Create
Procere,
另一种是使用图形化管理工具Enterprise
Manager。
用Transaction-
SQL
创建存储过程是一种较为快速的方法,但对于初学者,使用Enterprise
Manager
更易理解,更为简单。
当创建存储过程时,需要确定存储过程的三个组成部分;
所有的输入参数以及传给调用者的输出参数。
被执行的针对数据库的操作语句,包括调用其它存储过程的语句;
返回给调用者的状态值,以指明调用是成功还是失败。
12.2.1
使用Enterprise
Manager
创建存储过程
按照下述步骤用Enterprise
Manager
创建一个存储过程:
启动Enterprise
Manager,
登录到要使用的服务器。
选择要创建存储过程的数据库,在左窗格中单击Stored
Procere
文件夹,此时在右窗格中显示该数据库的所有存储过程,如图12-1
所示。
右击Stored
Procere
文件夹,在弹出菜单中选择New
Stored
Procere,
此时打开创建存储过程对话框,
输入存储过程正文。
单击Check
Syntax,
检查语法是否正确。
单击OK,
保存。
在右窗格中,右击该存储过程,在弹出菜单中选择All
task,
选择
ManagePermissions,
设置权限,
12.2.2
用CREATE
PROCEDURE
命令创建存储过程
通过运用Create
Procere
命令能够创建存储过程,在创建存储过程之前,应该考虑到以下几个方面:
在一个批处理中,Create
Procere
语句不能与其它SQL
语句合并在一起;
数据库所有者具有默认的创建存储过程的权限,它可把该权限传递给其它的用户;
存储过程作为数据库对象其命名必须符合命名规则;
只能在当前数据库中创建属于当前数据库的存储过程。
用Create
Procere
创建存储过程的语法规则如下:
CREATE
PROC
[
EDURE
]
procere_name
[
;
number
]
[
{
@parameter
data_type
}
[
VARYING
]
[
=
default
]
[
OUTPUT
]
]
[
,...n
]
[
WITH
{
RECOMPILE
|
ENCRYPTION
|
RECOMPILE
,
ENCRYPTION
}
]
[
FOR
REPLICATION
]
AS
sql_statement
[
...n
]

4. sql 存储过程是怎么实现的 简单的例子和解释!

存储过程就是一组保存在数据库中的sql语句,在需要的时候可以调用

最简单的,比如

create procere test as
delete from t_1; ---删除t_1表的所有记录
在sql server查询分析器执行时:

exec test; --执行过程test,删除了表t_1的所有记录

当然,没有人这样使用存储过程,存储过程可以接受参数,处理大量sql语句,并返回结果。
当在编写软件的过程中,碰到需要进行复杂的数据库操作时,可能需要大量的sql语句,这时候可以先在数据库中创建存储过程,将sql语句都写在存储过程里,可以视情况加入参数,也可以返回处理结果。编写软件时,在适当的地方引用并执行这个存储过程就好了,至于怎么引用,不同的软件开发语言有不同的语法。
存储过程是预编译的,这样可以提高执行效率,对于软件代码的维护也有好处

5. SQL语句问题:存储过程定义是什么什么时候用它作用是什么怎样写,来个实例!

定义:存储过程是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。作用:将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来, 以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。什么时候用:提高数据库执行速度,对数据库进行复杂操作,重复使用,安全要求高例子: CREATE PROCEDURE order_tot_amt @o_id int, @p_tot int output AS SELECT @p_tot = sum(Unitprice*Quantity) FROM orderdetails WHERE ordered=@o_id GO

6. 用sql写一个简单的存储过程语句

insert into 表名 (字段1,字段2,....)values('"字段1的值"','"&字段2的&"',...)
上述为ASP中增加数据的SQL方法

7. sql 存储过程语句编写

要到达你的要求,在存储过程中必须使用动态SQL语句。


一个简化的例子:

createprocereMyDynamicSQL
@tblwherenvarchar(200)--a==aora==xxx
as
begin
declare@sqlnvarchar(max)
--动态拼接sql语句
set@sql=N'select*from[表一]where'+@tblwhere
--执行
executesp_executesql@sql
end

8. sql存储过程语句求详解,下面的是内容

很简单的,楼主回答的很正确啊,就是创建个临时表,把从多个表中查出的数据放入临时表,你可以直接把临时表理解成自定义要显示的格式,后面的update就是更新临时表中的数据。
我写这个写的很多给你个例子,比较清晰的:
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procere (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 procere.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--
--@year int = year(getdate()),
--@month int = month(getdate())

CREATE PROCEDURE EmloyeeAlterationReport
@year int ,
@month int
AS
BEGIN
select department,0 ontybegmon,0 ontyendmon,0 moninty,0 monoutty,0 monmove,0 monintoonty,employeeid monoutrate ,id into #1 from Qn_EmloyeeInfo where 1 = 2

insert into #1(department,ontybegmon,ontyendmon,moninty,monoutty,monmove,monintoonty,monoutrate)
select department,0,0,0,0,0,0,0
from Qn_EmloyeeInfo
where year(createddate) = convert(int , '2011') and month(createddate) = 4 and isnull(department,'') <> ''
group by department

--月初在职人数
select department, count(*) reccount into #2 from Qn_EmloyeeInfo where year(createddate) <= convert(int , '2011') and month(createddate) < (6-1) and isnull(department,'') <> '' group by department
--月末在职人数
select department, count(*) reccount into #3 from Qn_EmloyeeInfo where year(createddate) <= convert(int , '2011') and month(createddate) <= (6-1) and isnull(department,'') <> '' group by department
--本月入职人数
select department, count(*) reccount into #4 from HR_ContractInfo_formal where year(staffDate) <= convert(int , '2011') and month(staffDate) = (6-1) and isnull(department,'') <> '' group by department
--本月离职人数
select department, count(*) reccount into #5 from HR_ContractInfo_formal where year(leaveDate) <= convert(int , '2011') and month(leaveDate) = (6-1) and isnull(department,'') <> '' and status in ('离职') group by department
--本月异动人数
select newdepartment department, count(*) reccount into #6 from HR_StaandPayChangeList where changeType In ('部门变动','岗位变动') and year(changeDate) <= convert(int , '2011') and month(changeDate) = (6-1) and isnull(newdepartment,'') <> '' group by newdepartment
--本月转正人数
select department, count(*) reccount into #7 from HR_ContractInfo where year(formalDate) <= convert(int , '2011') and month(formalDate) = (6-1) and isnull(department,'') <> '' and status in ('转正') and isnull(department,'') <> '' group by department

--更新月初在职人数
update #1
set ontybegmon = #2.reccount
from #2
where #1.department = #2.department
--更新月末在职人数
update #1
set ontyendmon = #3.reccount
from #3
where #1.department = #3.department

--更新本月入职人数
update #1
set moninty = #4.reccount
from #4
where #1.department = #4.department

--更新本月离职人数
update #1
set monoutty = #5.reccount
from #5
where #1.department = #5.department

--更新本月异动人数
update #1
set monmove = #6.reccount
from #6
where #1.department = #6.department

--更新本月转正人数
update #1
set monintoonty = #7.reccount
from #7
where #1.department = #7.department

--查询报表
select * from #1

END
GO

9. SQL存储过程实例

楼下的太麻烦了吧。emp员工表,输入任何部门号,返回部门的总工资,把总工资和部门好,分别放进emp2表里。
编写存储过程查询某部门员工的工资总和
create or replace procere my_text(v_deptno number)
is
cursor c is select* from emp;
v1 number:=0;
begin
for a in c loop
if(a.deptno=v_deptno) then
v1:=v1+a.sal;
end if;
end loop;
insert into emp2 values(v1,v_deptno);
end;
是不是很吊啊?楼主?

10. sql存储过程实例

CREATE OR REPLACE
procere procere_name
begin
for c in (select column_a_name from table_a_name)loop
update table_b_name set column_b_name=c.column_a_name where....
end loop;
end;