首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL Server尝试最终捕获

SQL Server尝试最终捕获
EN

Stack Overflow用户
提问于 2014-09-11 14:17:47
回答 7查看 52.3K关注 0票数 38

我有一个场景,我需要类似于.NET's try-catch-finally block.的东西

在我的尝试中,我将CREATE a #temp tableINSERT数据到它&处理其他基于#temp的数据集。

CATCH上,然后在RAISERROR上。有没有可能对DROP #temp使用FINALLY块?下面是伪代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BEGIN TRY

  CREATE TABLE #temp
  (
     --columns
  )
  --Process data with other data sets

END TRY
BEGIN CATCH

  EXECUTE usp_getErrorMessage

END CATCH
BEGIN FINALLY

  DROP TABLE #temp

END FINALLY
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-09-11 14:30:04

您可以只声明一个表变量(当查询结束时,该变量将自动消失),而不是创建表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BEGIN TRY
DECLARE @temp TABLE
(
    --columns
)
--do stuff
END TRY
BEGIN CATCH
--do other stuff
END CATCH
票数 14
EN

Stack Overflow用户

发布于 2015-07-01 21:04:35

虽然与FINALLY不完全相同,但Try-Catch的T-SQL版本确实允许在Try和Catch块之后需要执行的代码可以在end CATCH语句结束之后执行。以问题代码为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    BEGIN TRY
      CREATE TABLE #temp
       (
         --columns
       )
      --Process data with other data sets
    END TRY
    BEGIN CATCH
    EXECUTE usp_getErrorMessage
    END CATCH;

IF OBJECT_ID('tempdb..#temp') IS NOT NULL -- Check for table existence
    DROP TABLE #temp;

DROP TABLE命令将执行Try或Catch。请参阅:BOL Try...Catch

票数 36
EN

Stack Overflow用户

发布于 2014-09-11 14:30:56

没有FINALLY等效项。

替代方案可以是表变量,但并不完全相同,必须根据具体情况进行评估。

有一个包含详细信息的SO question,对于做出明智的选择非常有用。

使用表变量,您不需要像使用临时表那样进行清理

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25789859

复制
相关文章
较快速在一个数组中查找最大值和最小值
#include<stdio.h> #define MAX 100001 int a[MAX]; int n; /* 时间复杂度为3*n/2 */ void swap(int i) { if(i==n-1) return ; if(a[i]>a[i+1]) { int temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } void sort() { int i; for(i=0;i<n;i++) { swap(i); i++; }
chain
2018/08/02
3.6K0
在排序数组中查找数字
思路: 2分查找数组中的第一个k: 1. 如果中间数字大于k,那么k只可能出现在前半段 2. 如果中间数字小于k,那么k只可能出现在后半段 3. 如果中间数字等于k: - 如果中间数字的前面不是k,那么中间数字恰好就是第一个k - 如果中间数字的前面是k,那么第一个k肯定在前半段
用户8639654
2021/07/23
3.7K0
js给数组中对象添加新属性
let person =[{ id: 1, name: 'vhen' },{ id: 2, name: 'json' }] let newArr = obj.map((item,index) =>{ return Object.assign(item,{index:index}) }) 多添加了一些属性,是为了区别字符串单引号和双引号的, 用了.就不用中括号不用单引号 不用点 就要用中括号和单引号 var a =[{name: 'Tom',age:20},{name: 'Tom2'
用户1349575
2022/01/24
20.6K0
较快速在一个数组中查找最大值和最小值(2)
/*分治法*/ #include<iostream> #include<string> #include<vector> #include<fstream> using namespace std; int a[16]={1,3,5,7,9,11,14,2,4,6,8,10,12,14,16,18}; int b[9]={3,1,5,9,4,2,7,6,10}; int t[2]; vector<string> splitEx(const string& src, string separate_chara
chain
2018/08/02
2.5K0
查找二维数组的最大值及其位置
这道题目就是一道简单的二维数组查找问题,遍历二维数组即可找到最大值。 代码实现(Java)
用户8224910
2021/01/26
2.2K0
Java 查找 List 中的最大值、最小值Java 查找 List 中的最大值、最小值
Java 查找 List 中的最大值、最小值 java> List<Long> list = new ArrayList(); java.util.List<java.lang.Long> list = [] java> list.add(1L) java.lang.Boolean res1 = true java> list.add(2L) java.lang.Boolean res2 = true java> Collections.max(list) java.lang.Long res3 = 2 j
一个会写诗的程序员
2018/08/17
3.9K0
es6中的find filter 在数组中查找对象
var aa=[{id:1,name:’张三’},{id:2,name:’李四’},{id:3,name:’王五’},{id:2,name:’赵六’}]
kirin
2020/12/31
2.1K0
js给数组添加数据的方式/js 向数组对象中添加属性和属性值[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132130.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
23.6K0
将数组中多个对象的同名属性值取出合并成新数组
业务中需求的方法,接口返回一个数组,里面包含了大量的对象,具有同名的属性名,比较常见。但是需要将其中参数为name的属性值全部取出,合并成数组。
子舒
2023/08/23
4940
Js给数组对象新增属性
<script> var list = [{ 'name': 'aa' }, { 'name': 'aa' },] list.forEach((item) => { ite
明知山
2020/09/03
8.8K0
C语言丨如何查找数组中的最大值或者最小值?图文详解
查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助分治算法解决。
C语言中文社区
2022/05/31
8.8K0
C语言丨如何查找数组中的最大值或者最小值?图文详解
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4K0
将Js数组对象中的某个属性值升序排序,并指定数组中的某个对象移动到数组的最前面
  本篇文章主要实现的是将一个数组的中对象的属性值通过升序的方式排序,然后能够让程序可以指定对应的数组对象移动到程序的最前面。
追逐时光者
2020/07/28
12.4K0
Leetcode算法【34在排序数组中查找元素】
在之前ARTS打卡中,我每次都把算法、英文文档、技巧都写在一个文章里,这样对我的帮助是挺大的,但是可能给读者来说,一下子有这么多的输入,还是需要长时间的消化。
程序员小跃
2019/12/27
2.5K0
数组的实际操作求数组中数字的最大值
<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>一维数组最大值</title>     <script type="text/javascript">         //一维数组初始         var num=[1,56,23,954,6,43,87,3,5,55];         function max(arr){             var temp=arr[0];//初始化最大值默认为数组的第0号元
十月梦想
2018/08/29
1.9K0
在 JavaScript 中,对象是拥有属性和方法的数据
JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。 在 JavaScript 中,对象是拥有属性和方法的数据。
用户1503405
2021/10/08
3.7K0
分享 5 种在 JS 中访问对象属性的方法
点属性访问器是在 JavaScript 中访问对象属性的最常见和最直接的方式。它使用点 (.) 表示法来访问对象的特定属性。
前端达人
2023/08/31
1.9K0
分享 5 种在 JS 中访问对象属性的方法
查找数组中最大值的5种方法!(动图演示)
我们在一些特定场景下,例如查询公司员工的最高薪资,以及班级的最高成绩又或者是面试中都会遇到查找最大值的问题,所以本文我们就来列举一下查询数组中最大值的 5 种方法。
磊哥
2020/09/18
1.3K0
Java 对象数组按某个属性排序
新建一个Student对象 public class Student { private String name; private double score; public Student(String name,double score) { super(); this.name = name; this.score = score; } public String getName() { re
赵哥窟
2021/12/16
2.9K0
JS查找数组中是否包含某个元素或对象「建议收藏」
做业务需求时遇到一个功能模块需要动态增删数组对象,需求本身完成不难,但是写出来的代码我总感觉很冗余,于是我在网上找了很久,看有没有现成的轮子可以使用,最终找到了es6中的一个方法 将其记录在此,方便以后自己翻阅查找
全栈程序员站长
2022/11/02
3.2K0

相似问题

HBase-删除多行

14

星火批量删除hbase记录

10

在HBase中删除多行的有效方法

31

Hbase中的批量增量

20

如何在Mysql中批量删除表中的多行

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文