据我所知; 我想做的事情在sql中是不可能的,但值得问你们.
假设我有一个存储过程abc,它返回列Id和Value.由于功能原因,此存储过程主要由其他部门使用,我将不时地使用它来进行数据检查.
所以使用它作为我的存储过程的一部分:
DECLARE @tABC TABLE
(
ID INT,
Value DECIMAL(12,2)
)
INSERT INTO @tABC
EXEC OtherDb.DataProd.abc
Run Code Online (Sandbox Code Playgroud)
Oky因此现在可以完美地工作,但是如果他们改变了存储过程的结构呢?
在存储过程中添加或删除列会破坏我的代码,因此有一种方法可以使我的代码更加灵活.
我最后一次绝望的尝试是这样的:
WITH tempTable AS
(
EXEC OtherDb.DataProd.abc
)
SELECT ID, Value FROM tempTable
Run Code Online (Sandbox Code Playgroud)
这显然是悲惨地失败了.
我已经读过在SQL Server存储过程中使用Try Catch块可以节省大量的服务器资源.我的问题是它使用了多少资源?
我目前正在使用Try Catch块和事务,只要我的sproc正在进行大量的数据更改,这对于防止不正确的数据进入数据库以及记录错误非常有用,但我想使用这种方法在我所有的sprocs编程.
它有多大区别?