SQL Server存储过程:如何在变量中返回失败类型的列名/值?
暧昧的线程名称,我道歉。我对SQL并不陌生,但我对编写更长的存储过程并不陌生,因此除了传递表名或返回行计数等信息外,我不会处理太多变量 我有一个存储过程,它正在执行从暂存表到事实表的插入。插入中有两个类型转换 如果由于类型转换而导致插入失败。有没有办法返回失败列的名称以及失败值是什么?我该如何编写代码?我知道Try_parse可以使存储过程在类型转换失败时不会失败,但我希望能够准确地传回失败的列和值 我在这里举一个例子:SQL Server存储过程:如何在变量中返回失败类型的列名/值?,sql,stored-procedures,sql-server-2012,Sql,Stored Procedures,Sql Server 2012,暧昧的线程名称,我道歉。我对SQL并不陌生,但我对编写更长的存储过程并不陌生,因此除了传递表名或返回行计数等信息外,我不会处理太多变量 我有一个存储过程,它正在执行从暂存表到事实表的插入。插入中有两个类型转换 如果由于类型转换而导致插入失败。有没有办法返回失败列的名称以及失败值是什么?我该如何编写代码?我知道Try_parse可以使存储过程在类型转换失败时不会失败,但我希望能够准确地传回失败的列和值 我在这里举一个例子: Create Procedure dbo.Example_Insert
Create Procedure dbo.Example_Insert
@updateUser varchar(255)
As
Begin
Insert Into dbo.Energy_Costs (Energy_Cost_Id, Project_Id, Propane_Cost_Dollars,
Electricity_Cost_Dollars, Fuel_Savings_Evaluator)
Select
Next Value For energy_cost_id,
r.project_id,
Cast(r.propane_cost_dollars As Decimal(18,2)),
Cast(r.electricity_cost_dollars As Decimal(18,2)),
@update_user fuel_savings_evaluator
From
staging_table r
return @@ROWCOUNT
end
您可以在sql中使用游标,然后一次插入一行。当插入失败时,返回值当前为行错误。
我希望我的想法适合您。您可以在sql中使用游标,然后一次插入一行。当插入失败时,返回值当前为行错误。
我希望我的想法适合您。使用
try\u cast()
执行选择而不使用插入。使用try\u cast()
执行选择
而不使用插入操作。