Mas*_*uso 1 sql sql-server stored-procedures
我正在编写一个T-SQL存储过程,使用该语句插入表中
INSERT INTO [tableName]
.....
SELECT * FROM [tableName]
Run Code Online (Sandbox Code Playgroud)
有时输入表(SELECT)可能包含错误的值:插入期望小数的表,select返回NVarChar值,这将导致转换错误.现在因为语句执行了"批量插入",我不知道插入的最后一条记录是什么,或者包含错误数据的记录是什么.SQL只说"转换错误....."有没有办法"记录"最后插入的记录,以便至少我知道哪一行包含错误的值?(不使用游标)
观察此查询的结果
SELECT
v.id,
v.val,
x=TRY_CAST(v.val AS DECIMAL(28,2))
FROM
(VALUES(1,'1.26'),(2,'A.13')) AS v(id,val)
WHERE
TRY_CAST(v.val AS DECIMAL(28,2)) IS NULL
Run Code Online (Sandbox Code Playgroud)
结果:
+----+------+------+
| id | val | x |
+----+------+------+
| 2 | A.13 | NULL |
+----+------+------+
Run Code Online (Sandbox Code Playgroud)
它使用TRY_CAST,NULL如果CAST失败则返回.您可以使用它来确定失败的记录,或缩小您插入目标表的集合.
| 归档时间: |
|
| 查看次数: |
4420 次 |
| 最近记录: |