Return 在 Sybase 中插入 sql 的代码

Return code for insert sql in Sybase

我有大量数据,打算使用简单的 SQL 插入到 Sybase 中上传。 现在一些 sql 因违反约束而失败。

因为我 运行 一口气把所有的 sql 搞定了,所以我找不到哪个 sql 失败了。

数据库客户端控制台只是打印这个,

Attempt to insert duplicate key row in object 'Employee' with unique index 'Employee_uk'
(0 rows affected)

所以我想有一个 INT 来捕获每个插入语句的执行并在它们失败时打印。

我找到了一个程序,但我似乎找不到方法来执行 SQL,

DECLARE @status INT
EXECUTE @status = proc_sample
IF @status != 0
    PRINT 'procedure failed'

有没有办法获取插入的 return 代码?或者其他方式?

注意:我不想为每个 sql 设置 BEGIN 和 END,因为这需要很长时间,而且我负担不起。

干杯!!

您需要在 INSERT 语句(我假设您正在执行)之后直接检查 @@error。如果它不为 0,那么您只是遇到了错误情况。但是,错误检查必须在 INSERT 之后立即进行。 任何其他执行的语句将消除错误状态。最好先复制@error:

DECLARE @err INT
[...]
INSERT INTO mytable....
SET @err = @@ERROR
IF @err <> 0
BEGIN
... error action...
END