我想检查表是否不存在,然后创建一个,否则,将数据插入其中。
use tempdb
if object_id('guest.my_tmpTable') IS NULL
begin
CREATE TABLE guest.my_tmpTable (
id int,
col1 varchar(100)
)
end
--- do insert here ...
第一次运行时,表已创建但第二次运行sybase抱怨表已存在。
谢谢!
答案 0 :(得分:7)
原因是整个语句 - 如果及其“真实”部分被编译为一个。
如果在编译期间表存在 - 错误。
因此,您可以将CREATE TABLE
语句放入动态sql statemetn EXEC('CREATE TABLE....')
然后Sybase在编译时看到的是:
IF object_id('mytab') IS NULL
EXEC('something or other')
EXEC
的内容在执行之前不会编译,当你知道没有表格且一切都很好的时候。