Suppose we execute a DROP TABLE X
through an ExecuteNonQuery
and everything runs fine (without exception), what will it return?

- 2,841
- 4
- 33
- 43
-
4This has to be one of the clearest non-trivial examples where "try it and find it out" is a perfectly appropriate answer. – jason Dec 28 '10 at 18:12
1 Answers
it will return -1
as per MSDN
You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements. Although the ExecuteNonQuery returns no rows, any output parameters or return values mapped to parameters are populated with data. For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.

- 17,262
- 5
- 38
- 63
-
Well, that's an excellent answer, well documented and everything, but when testing it happens to return 0 for both a successful DROP TABLE and a successful UPDATE TABLE /: – Gabriel Dec 28 '10 at 18:36
-
1