SQL Server 2008 R2——T-SQL 存储过程 返回表
==================================声明==================================
本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性。
未经作者同意请勿修改(包括本声明),保留法律追究的权利。
未经作者同意请勿用于出版、印刷或学术引用。
本文不定期修正完善,为保证内容正确,建议移步原文处阅读。
本文链接:http://www.cnblogs.com/wlsandwho/p/4374367.html
=======================================================================
虽然早在上学时就学过Sql Server 2005,但是工作中一直没有亲手用过。
最近的工程抛弃了Access,用上了Sql Server 2008。
于是需要写存储过程了。
(不知道为什么他们那么喜欢Access,是部署方便,工业大多只存数据的原因?)
=======================================================================
看了几天(虚词)的资料,只能写出这种程度,还是希望能有大神指点下。
=======================================================================
在数据库中建立了一张表,用于存放上次未处理的数据。当软件启动的时候,读取数据到界面,然后清空表。
之前我在VC++中用ADO分成2步做:在事务中,读取表数据,删除表数据。
没有问题。但感觉好麻烦。
想看看能不能用存储过程直接实现,于是看了下手册:
OUT | OUTPUT
指示参数是输出参数。使用 OUTPUT 参数将值返回给过程的调用方。除非是 CLR 过程,否则 text、ntext 和 image 参数不能用作 OUTPUT 参数。OUTPUT 参数可以为游标占位符,CLR 过程除外。
不能将表值数据类型指定为过程的 OUTPUT 参数。
看来只能曲线救国了。
=========================第一次写这种东西,又要丢人了==============================
创建一个用户定义表类型
CREATE TYPE TBLDATA AS TABLE
(
[Cmd] [nvarchar](50),
[Num] [nvarchar](50),
[Name] [nvarchar](50) ,
[InnerID] [nvarchar](50),
[Result] [nvarchar](50),
[EndTime] [datetime],
[Legal] [tinyint]
) GO
创建一个存储过程
CREATE PROC usp_GetData
AS
BEGIN
SET NOCOUNT ON DECLARE @tblSD TBLDATA BEGIN TRANSACTION
INSERT INTO @tblSD
( Cmd ,
Num ,
Name ,
InnerID ,
Result ,
EndTime ,
Legal
)
SELECT Cmd ,
Num ,
Name ,
InnerID ,
Result ,
EndTime ,
Legal
FROM Data DELETE FROM Data
COMMIT TRANSACTION SET NOCOUNT OFF SELECT Cmd ,
Num ,
Name ,
InnerID ,
Result ,
EndTime ,
Legal
FROM @tblSD
END
不要忘了授权
(我的testdev只有读、写权限)
GRANT EXECUTE ON usp_GetData TO testdev
=======================================================================
试了下,功能是实现了,感觉效率会坑,好在数据很少。
没办法,以后再说吧。
(已消毒,所以命名规范什么的,处女座请!自!重!)
=======================================================================
想来,我的这个存储过程会返回好多结果,所以有必要先屏蔽行影响。
在命令行里试验过,还要在代码里能用才行。
SQL Server 2008 R2——T-SQL 存储过程 返回表的更多相关文章
- SQL Server 2008 r2 中 SQL语句提示“对象名无效”,但可执行
[问题描述]在使用 SQL Server 2008 r2 时,有时在完成SQL书写后,会提示“对象名无效”,而SQL语句可正常执行. [原因]缓存相关. [解决方法]ctrl+shift+R 刷新下, ...
- SQL Server 2008 r2 输入SQL语句不能自动提示的解决办法
先利用“配置工具-SQL Server 配置管理器”关闭所有MSSQLSERVER服务,利用SQL Server Installation Center,进入Maintenance,选择Repair, ...
- 【转载】SQL Server 2008 r2 中 SQL语句中单引号转义
sql server有两个转义符. 默认情况下, 单引号'是字符串的边界符, 如果在字符串中包含单引号', 则必须使用两个单引号', 第1个单引号'就是转义符.
- SQL Server 2008 R2——TRUNCATE TABLE 无法截断表 该表正由 FOREIGN KEY 约束引用
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- 更改计算机名称后 导致 sql server 2008 R2 用windows账户不能附加的错误解决办法
出错背景:本人想用sql server 2008 R2 附加sql server 2005数据库出现拒绝访问,后查询网站得知,要用windows身份验证方式登录进去附加, 然后我就用windows身份 ...
- SQL Server 2008 R2 的版本和组件
SQL Server 2008 R2 的版本和组件 SQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005 SQL Server 2012 ...
- 安装 SQL Server 2008 R2 的硬件和软件要求(转)
以下各部分列出了安装和运行 SQL Server 2008 R2 的最低硬件和软件要求.有关 SharePoint 集成模式下的 Analysis Services 的要求的详细信息,请参阅硬件和软件 ...
- .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
一. 问题说明 最近.Net EF core 程序部署到服务器,服务器数据库安装的是SQL server 2008 R2,我本地用的的是SQL server 2014,在用到分页查询时报错如下: H ...
- SQL Server 2008 R2 SP3 and SQL Server 2008 SP4 are now available!
时间 2014-10-02 00:00:00 SQL Server Team Blog 原文 http://blogs.technet.com/b/dataplatforminsider/arc ...
- 完全卸载SQL Server 2008 R2(转)
系统:Windows 10 以下方法转自:http://www.cnblogs.com/qanholas/p/3804123.html 1.在控制面板卸载Miscrosoft SQL Server 2 ...
随机推荐
- poj-2236-Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 24155 Accepted: 100 ...
- Linux命令详解之—more命令
Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...
- 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...
- sap后台作业管理/sap打印管理
sap后台作业管理: 后台作业,主要用于运行需要处理大量数据,对交互没有要求的程序.个人认为,简单的创建,配置和监控后台作业没有什么难度.后台作业管理最为困难的解决方案的取舍,系统负载的调控.失控的后 ...
- SharePoint 2013 列表关于大数据的测试<二>
1.给测试列表添加查阅项字段,100个,代码如下: 2.插入测试数据的方法,注意查阅项字段的格式,代码如下: 3.插入10w条数据,时间花费如下(不建议List[LISTNAME].Items.Add ...
- 为什么relativelayout.layoutParams的width为-1
源码里看下就知道了.. -1不代表宽度,代表MATCH_PARENT常量的值public static final int FILL_PARENT = -1; public static final ...
- Cordoval在iOS中的运用整理
一:关于Cordoval理论知识 1:PhoneGap是手机平台上流行的一款中间件.它构建在各种手机平台所提供的WebView(浏览器内核)组件的基础之上,使用javascript语言对应用开发者提供 ...
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
面试题目:地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete.free掉,你能不能谈谈: GC是在什么时候,对什么东西,做了什么事情? 以上算是三个问题,下面 ...
- BiliBili 第三方 Android 客户端应用源码
基于 Material Design 的 BiliBili 第三方 Android 客户端,我们知道这个APP目前比较流行,所以大家也比较喜欢模仿,需要的参考一下 文档共享 : https://dri ...
- 【代码笔记】iOS-切换条
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...