2011-06-02 67 views
0

插入可以执行没有错误,但不插入任何东西?我正在使用SQL Server 2008,并想知道如果我能仅仅通过检查@@error或者是否有我缺少的东西而逃脱。对于更新,我检查@@error@@rowcount。插入@@rowcount = 0对我来说似乎很陌生。插入0行没有错误

编辑 @Gregory我基本上想知道如何检查一个插入语句。插入执行和@@error为0是否有奇怪的边界情况?

回答

3

您可以使用select返回空表来运行INSERT命令。

该语句将成功,但不更新行。

INSERT INTO myTable (col1, col2) 
SELECT col1, col2 
FROM myOtherTable 
WHERE 1 = 2 
+0

通过鼠标点击击败我。 :) +1 – 2011-06-02 14:01:25

+0

@Ken - 对不起 - 下次尝试会变慢;) – Oded 2011-06-02 14:01:55

+0

谢谢,就是我在找的东西。如果使用值插入测试(aCol)值(42)',我是否安全地检查'@@ error'? – 2011-06-02 14:34:43

0

您是否遇到过错误,但没有插入?

或者这只是一个问题,你为什么要使用ROWCOUNT?除了检查单个插入是否工作之外,ROWCOUNT还有其他目的。

还是你问@@ ERROR?

0

此外,插入可能最终会插入没有错误的行,而不是涉及触发器。