小编Wil*_*eld的帖子

分别在父/子存储过程中打开/关闭XACT_ABORT有什么影响?

我正在尝试改进当前系统的错误处理,以产生更有意义的错误消息。我有一个“根”存储过程,该存储过程对其他嵌套存储过程进行了多次调用。

在根sp中,XACT_ABORT将其设置为,ON但在嵌套过程中,XACT_ABORT将其设置为OFF。我想从较低级别的过程中捕获特定的错误,而不是获取根过程的错误。

我经常看到错误, uncommittable transaction is detected at the end of the batch, the transaction is being rolled back.

将这些“混合”环境与XACT_ABORTs

另外,如果您对高级错误处理有任何建议,将不胜感激。我想我想使用它,sp_executesql这样我就可以传递参数来获取错误输出,而不必修改所有存储过程并用于RAISERROR调用父过程的CATCH块。

t-sql error-handling xact-abort

5
推荐指数
1
解决办法
1710
查看次数

SQL使用CASE语句更新列中的行

我有两个表,Users和#TempTable(用户的子集).我想更新Users表中的列IsActive.如果#TempTable中的用户也在Users表中,我想设置IsActive = 1,否则设置IsActive = 0.

从不在#TempTable中的用户获取用户(对于这些用户,IsActive应设置为0):

-- (Users \ #TempTable) U (#TempTable \ Users)
SELECT  u.UserName
FROM    Users u 
WHERE   (u.UserName) NOT IN 
    (SELECT t.[User Name] FROM #TempTable t) 
UNION ALL 
SELECT  t.[User Name] 
FROM    #TempTable t
WHERE   (t.[User Name]) NOT IN 
    (SELECT u.UserName FROM Users u)
Run Code Online (Sandbox Code Playgroud)

我们称之为ResultSet.我很感激UPDATE声明的一些帮助.我希望能做的是:

UPDATE Users
SET IsActive = (CASE WHEN User.UserName IN ResultSet THEN 0 ELSE 1 END) 
Run Code Online (Sandbox Code Playgroud)

无需为每个User.UserName写出CASE WHEN.提前致谢!

sql sql-server case

5
推荐指数
1
解决办法
3万
查看次数

Google Sheets - 将跨列的 2 行连接到 1 个单元格中

我想实现下图中“所需输出”列中的内容。我需要获取第 1 行中的内容(id1、id2 等),添加“:”,然后将其与每个字段列下的值连接起来,添加“|” 到每个 ID-Value 对,并将它们全部放入一个单元格中。我需要该公式也适用于空单元格,因为要连接在一起的字段数量是动态的。

到目前为止,我已经在一个单元格中尝试了一个大的 CONCATENATE 公式,但我只能让它适用于公式中包含的尽可能多的非空白单元格。

提前致谢!

在此输入图像描述

google-sheets

0
推荐指数
1
解决办法
1305
查看次数