If you're using an C API call such as sqlite3_prepare(), the semi-colon is not required. Further, if newcol exists, the C function will return SQLITE_OK. If it does not exist, it will return an error. In both cases the actual statement is _not_ executed.