sql 储存过程的使用

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

-<span style="background-color: rgb(255, 255, 0);">-获取所有数据 根据自定义函数传人类型id返回类型名称</span>

USE [Cloths]

GO

/****** Object:  StoredProcedure [dbo].[Proc_all]    Script Date: 05/23/2014 12:10:37 ******/

SET
ANSI_NULLS ON

GO

SET
QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE   [dbo].[Proc_all]

AS

BEGIN

    SET
NOCOUNT ON;

   select
ClothColorId ,Name
,<span style="background-color: rgb(255, 0, 0);">dbo.myfun1(TypeId)</span> as
typename from
dbo.ClothColors;

END

  这些储存过程都是修改的,吧ALTER改为create 就可以在数据库中创建

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

USE [Cloths]

GO

/****** Object:  UserDefinedFunction [dbo].[myfun1]    Script Date: 05/23/2014 13:53:46 ******/

SET
ANSI_NULLS ON

GO

SET
QUOTED_IDENTIFIER ON

GO

 

<span style="background-color: rgb(255, 255, 0);"> --自定义函数</span>

ALTER FUNCTION  [dbo].[myfun1]

(  

 @a varchar(50)

     

)

 returns
varchar(50)

as

begin

 declare
@name varchar(50);

 select
@name=[types].name
from [types] where
[email protected];

 return
@name;

end

  //既有传人参数,又有返回参数

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

USE [Cloths]

GO

/****** Object:  StoredProcedure [dbo].[Proc_all]    Script Date: 05/23/2014 13:56:48 ******/

SET
ANSI_NULLS ON

GO

SET
QUOTED_IDENTIFIER ON

GO<br>--<span style="background-color: rgb(255, 255, 0);">储存过程</span>

ALTER PROCEDURE   [dbo].[Proc_all]

(

 @name
varchar(50), --<span style="background-color: rgb(255, 255, 0);">默认传人</span>

 @count
int output

)

AS

BEGIN

    SET
NOCOUNT ON;

   select
ClothColorId ,Name
,dbo.myfun1(TypeId) as
typename from
dbo.ClothColors where
Name[email protected]name;

   select
@count=COUNT(1) from
dbo.ClothColors;

  

END

  //是c#实现传人参数和返回参数

?





1

2

3

4

5

6

7

8

9

10

SqlCommand comm = new
SqlCommand();

          comm.Connection = new
SqlConnection("Data Source=.;Initial Catalog=Cloths;Integrated Security=True");

          comm.CommandType = CommandType.StoredProcedure;

          comm.CommandText = "Proc_all";

          comm.Parameters.Add(new
SqlParameter("@name", "大红"));//传人参数

          comm.Parameters.Add(new
SqlParameter("@count",DbType.Int32));

          comm.Parameters["@count"].Direction = <span style="background-color: rgb(255, 255, 0);">ParameterDirection.Output; //这个必须写,不写不会返回要传出的参数</span>

          SqlDataAdapter sda = new
SqlDataAdapter(comm);

          DataSet ds=new
DataSet ();

          sda.Fill(ds);

  

时间: 2024-09-28 20:38:07

sql 储存过程的使用的相关文章

sql储存过程in(多个参数)

首先要创建一个截取字符串的函数 函数SqlitIn的第一个参数是储存过程要in的字符串,第二个参数是分隔符 1 CREATE function [dbo].[SplitIn](@c varchar(100),@split varchar(2)) 2 returns @t table(col varchar(20)) 3 as 4 begin 5 while(charindex(@split,@c)<>0) 6 begin 7 insert @t(col)values (substring(@c

关于SQL储存过程中输出多行数据

declare @num1 int           --为符合条件的总行数 select @num1=COUNT(1) from cardInfo where openDate between @date1 and @date2 [email protected] 和 @date2 为开始时间到结束时间,可以理解一个条件 while(@num1<>0) --和下面的[email protected]=1形成循环的次数begin print @num1                    

SQL储存过程

基本语法 创建存储过程 create procedure sp_name @[参数名] [类型],@[参数名] [类型] as begin ......... end 以上格式还可以简写成: create proc sp_name @[参数名] [类型],@[参数名] [类型] as begin ......... end 注:"sp_name"为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头 调用存储:exec sp_name [参数名] 删除存储:drop procedur

【转】xp_dirtree储存过程漏洞

sql server 2000漏洞一直很多前段时间我自己的服务器就出现了一个sql的临时储存过程漏洞漏洞扩展:xp_dirtree储存过程 事前:最近发现一个漏洞是sql服务器造成的前几天正好没有什么事情,就用阿d的sql注入工具对自己服务器的网站进行注入,偶然发现了使用mssql的网站浸染可以利用sql注入的形式得到整个服务器上所有目录(我的服务器作了安全设置的)依然可以看见,然后在服务器上安装了一个抓包工具对sql server进行抓包发现,使用工具连接sql漏洞xp_dirtree读取目录

SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数

-- SQL SERVER 判断是否存在某个触发器.储存过程 -- 判断储存过程,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE name='procedurename' AND type='P')) DROP PROCEDURE procedurename -- 判断触发器,如果存在则删除IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[triggername]')

[SQL Server]储存过程中使用临时表循环操作数据

本文为原创文章,转载请注明出处!我的博客地址:http://www.cnblogs.com/txwd 由于工作原因,到目前为此已有一年多没有写SQL Server的储存过程了,已有些生疏.日前工作中有个表的数据需要定时更新,翻了一下以前写的储存过程,在此记录一下. 需求是这样的: 有两张表     1.博主表: Blogger ,2.博主对应的文章表: BlogForBlogger 文章表的数据由服务端定时获取,博主表有个字段保存博主文章的总数量,所以这个字段要定时去更新. 实现:创建一个储存过

sql之储存过程与函数的区别

1.创建函数.查找函数 /*创建带参数的函数,返回单个*/ CREATE FUNCTION [dbo].[GETGrade](@userName nvarchar(10),@subject nvarchar(10)) returns nvarchar(10) as begin declare @grade nvarchar(10) if @userName='张三' set @grade=(select [source] from TestRows2Columns where [email pr

SQL获取所有数据库名、表名、储存过程以及参数列表

SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogin='1'表示帐户islogin='0'表示角色status='2'表示用户帐户status='0'表示糸统帐户2.获取所有数据库名:SELECT Name FROM Master..SysDatabases ORDER BY Name3.获取所有表名SELECT Name FROM Databas

SQL Server 储存过程的output 参数

要做的参数的回传一方面要做到有储存过程的配合,再一方面也要有调用方法的配合,也就是说错误的调用方法是没有办法把值回传的. 下面是例子 --1.储存过程方面的配合 create procedure dbo.usp_C @i as int output    ---**注意这里要用output 关键字**--- as begine set @i =100; end; -- 2.调用方面的配合 declare @j as int =1; exec dbo.usp_C @j output ;--**注意