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

sql存储过程输出count

发布时间: 2023-03-24 00:55:53

A. sql 存储过程,返回数据集 并返回总行数

1、打开SQLServerManagementStudio找到存储过程所在的数据库。在对象资源管理器详细信息中可以看到存储过程的文件夹。

B. sql存储过程 输出参数

SQL存储过程输出参数:

--===================【创建存储过程】=====================

USE[Message]
GO
/******Object:StoredProcere[dbo].[读取外部数据库查询]ScriptDate:10/24/201205:39:16******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
--=============================================\Working没有变1,错误码没有测试,计划时间测试,企业名称

createPROCEDURE[dbo].[数据库查询]
@SmsContentvarchar(20)='1231',--输入参数
@bj1intout--输入出参数

AS
BEGIN

SELECT@bj1=count(Id)fromsss

END


--===============【调用】==================

USE[Message]

DECLARE@return_valueint

EXEC[dbo].[数据库查询]'1231',@return_valueoutput

SELECT@return_value

C. SQL 创建存储过程 输出对比参数

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[proc_return]
@货物编号 nvarchar(50),--不清楚你的这个货物编号是要传进来还是要 在存储过程获取
@ReturnCount Int OutPut
AS
Begin
Begin TransacTion trans
Set @ReturnCount = 3 --这里先默认为3或者其他 ,如果要检测其他错误的话 会要用到 食物

--执行取得 货物编号 语句或者 存储过程

if(@货物编号='') --这老如里可以看成判断没有给出闭卜 货物编号
begin
select @ReturnCount=1
end

If Exists(Select * From 货物表 Where 货物编号 = @货物编号)--判断是否存在
Begin
select @ReturnCount=0
End
Else
Begin
select @ReturnCount=2
End

if @@error<>0 --判断如果以侍态启上执行有任何一条出现错误
begin
rollback tran --开始执行事务的回滚,恢复的转账开始之前状态
select @ReturnCount=3
end
else
begin
commit tran
end

End

呵呵 希望对你有所帮助。

D. sql创建存储过程失败,count字段不正确或语法错误

sql创建存储过程失败,count字段不正确或语法错误,该字段加双引号。数据库创建表与存储过程中的sql语句字段不符合错误(耗时最长,最无语),这里括号中的字段需要加号,如果建表的时候把列名加上双引号,查询的时候列名不加双引号就会报错。

E. 我的sql存储过程是执行分页查询的 返回当前页的数据datatable 和output输出参数总条数pagecount能一条sql

给你个我在用的分页存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[global.pagebreak]
@pFields varchar(4000)='*',--查询的字段
@pSortField varchar(2000)='',--排序的字段
@pTable varchar(3000)='',--所查的表
@pWhere varchar(4000)='',--条件
@pOnePageRows int = 25,--每页显示的条数
@pIndex int = 1
as
declare @s varchar(5000)
if (@pWhere='' or @pWhere=NULL)
begin
set @s ='
DECLARE @totalRows int
DECLARE @totalPages int
SELECT @totalRows = COUNT(*) From '+@pTable+'
SET @totalPages = @totalRows / '+cast(@pOnePageRows as varchar)+'
IF( @totalPages * '+cast(@pOnePageRows as varchar) + '< @totalRows)
SELECT @totalPages = @totalPages + 1
SELECT '+@pFields+' FROM(
SELECT ROW_NUMBER() OVER(order by '+@pSortField+') as ROWID, '+@pFields+' From '+@pTable+')
AS TSP
WHERE ROWID BETWEEN '+cast((((@pIndex-1)*@pOnePageRows)+1) as varchar)+'
AND '+cast((@pIndex*@pOnePageRows) as varchar)+'
SELECT @totalRows AS TOTALROWS,
@totalPages AS TOTALPAGES,
'+cast(@pIndex as varchar)+' AS CURRENTPAGE,
'+cast(@pOnePageRows as varchar)+' AS ONEPAGEROWS '
end
else
begin
set @s ='
DECLARE @totalRows int
DECLARE @totalPages int
SELECT @totalRows = COUNT(*) From '+@pTable+' where '+@pWhere+'
SELECT @totalPages = @totalRows / '+cast(@pOnePageRows as varchar)+'
IF( @totalPages * '+cast(@pOnePageRows as varchar) + '< @totalRows)
SELECT @totalPages = @totalPages + 1
SELECT '+@pFields+' FROM(
SELECT ROW_NUMBER() OVER(order by '+@pSortField+') as ROWID, '+@pFields+' From '+@pTable+' where '+@pWhere+')
AS TSP
WHERE ROWID BETWEEN '+cast((((@pIndex-1)*@pOnePageRows)+1) as varchar)+'
AND '+cast((@pIndex*@pOnePageRows) as varchar)+'
SELECT @totalRows AS TOTALROWS,
@totalPages AS TOTALPAGES,
'+cast(@pIndex as varchar)+' AS CURRENTPAGE,
'+cast(@pOnePageRows as varchar)+' AS ONEPAGEROWS '
end
print @s
exec(@s)

F. MS sql如何使用存储过程

一、存储过程的概念
T-SQl和C语言一样 ,是一门结构化的语言。
什么是存储过程?
存储过程是SQL查询语句与控制流程语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象
分类:
系统存储过程: 以sp_或xp_打头
用户自定义 :以proc_打头
存储过程的优点:
执行速度快 效率高
模块式编程
减少网络流量
提高安全性
二、系统存储过程
SQl server 的系统存储过程保存在master数据库中,且所有命名的系统存储过程命名以“Sp_”开头。在master数据库中,
系统存储过程数量如下:
代码如下 复制代码
select count([name])as '系统存储数量' from sysobjects
where [name] like 'sp_%'

EXECUTE 用来表示调用存储过程,也可以缩写为EXEC,
调用存储的语法如下:
EXECUTE ‘存储过程名’ ‘参数’ ---如果没有参数则省略参数
常用的系统存储过程
EXEC sp_databases 列出当前系统中的数据库
EXEC sp_renamedb 'Northwind','Northwind1' 修改数据库的名称(单用户访问)
USE stuDB GO EXEC sp_tables 返回某个表列的信息
EXEC sp_columns 查看指定列的信息
EXEC sp_help 查看某个表的所有信息
EXEC sp_helpconstraint '表名' 查看某个表的约束
EXEC sp_helpdb '数据库名' 或 EXEC sp_helpdb 查看指定数据库或所有数据库信息
EXEC sp_helptext '对象名称' 显示数据库对象(存储过程、触发器、试图)的定义文本
EXEC sp_helpindex '表名' 查看指定表的索引信息
EXEC sp_renamedb '原名称','新名称' 更改数据库名称
EXEC sp_stored_proceres 列出当前环境可用的所有存储过程

除了系统存储过程,SQL Server 还提供以Xp_开头的扩展存储过程,如可以调用DOS命名的,XP_cmdshell 存储过程
用法如下:

代码如下 复制代码

EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]


NO_OUTPUT 为可选参数,表示是否输入存储过程返回的信息
三、用户自定义存储过程
1、语法
代码如下 复制代码
create procere 存储过程名
@参数1名 数据类型 [=默认值] [参数类型(输入/输出)]
... ...
@参数n名 数据类型 [=默认值] [参数类型(输入/输出)]
as
begin
sql语句
end;
go

参数类型分为输入参数和输出参数,默认为输入参数,使用OUTPUT表示输出参数。创建存储过程最好以proc开头

2、创建不带参数的存储过程

代码如下 复制代码
--判断存储过程是否存在
if object_id('proc_student','procere') is not null
drop procere proc_student
go
create procere proc_student
as
begin
select pcid as '电脑编号',
case pcuse
when 0 then '空闲'
when 1 then '忙碌'
end as '使用状态' from pc
end;
--调用存储过程
execute proc_student select * from pc
go

3、创建带输入参数的存储过程
语法:
代码如下 复制代码
create procere 存储过程名
@参数1名 数据类型 [=默认值]
....
@参数2名 数据类型[=默认值]
as
SQl与语句
...
go

--例如
--创建带输入参数的存储过程
代码如下 复制代码
if object_id('proc_stu','procere') is not null
drop procere proc_stu
go
create procere proc_stu
@pcuse int
as
begin
select pcid as '电脑编号',
case pcuse
when 0 then '空闲'
when 1 then '忙碌'
end as '使用状态' from pc where pcuse=@pcuse end;
--调用存储过程
execute proc_stu @pcuse=1

4、创建带输出参数的存储过程
代码如下 复制代码
--创建带输出参数的存储过程
if OBJECT_ID('proc_s','procere') is not null
drop procere proc_s
go
create procere proc_s
@pcid int,
@pcus int output
as
begin
select @pcus=pcuse from pc where pcid=@pcid end;
--调用存储过程
declare @pcus int execute proc_s 5,@pcus output


四、处理错误信息
当存储过程的语句十分复杂时,可以在存储过程中加入错误语言。SQL Server中可以使用RAISERROR 返回用户自定义的错误信息。
RAISERROR 语法如下:

RAISERROR (自定义的错误信息,错误的严重级别,错误状态)

自定义错误信息:表示输出信息:表示输出的错误提示文本
错误的严重级别:表示用户自定义错误的严重性级别。(0-18极)
错误的状态:表示自定义错误的状态,值的范围在1-127