Неоднозначное название темы, прошу прощения. Я не новичок в SQL, но я новичок в кодировании более длинных хранимых процедур, поэтому я не имею дело с переменными, кроме передачи имени таблицы или возвращаемого количества строк и т. Д. c.
У меня есть хранимая процедура, которая выполняет вставку из промежуточной таблицы в таблицу фактов. Во вставке есть пара приведений типов.
Если вставка не работает из-за преобразования типа. Есть ли способ вернуть имя столбца, в котором произошел сбой, а также его значение? Как мне это закодировать? Я знаю, что Try_parse сделает так, чтобы хранимая процедура не выходила из строя при сбое приведения типа, но я хочу иметь возможность точно передать обратно, какой столбец и значение не удалось.
Я показываю здесь пример:
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