gpt4 book ai didi

sybase - 如果表不存在,如何仅创建表?使用 "object_id(' 表') IS NULL"不起作用?

转载 作者:行者123 更新时间:2023-12-05 00:02:27 27 4
gpt4 key购买 nike

我想检查该表是否不存在,然后创建一个,否则,将数据插入其中。

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 提示该表已存在。

谢谢!

最佳答案

原因是整个语句 - if 和它的“真”部分被编译为一个。

如果该表在编译期间存在 - 错误。

所以你可以把 CREATE TABLE语句转成动态sql statemetn EXEC('CREATE TABLE....')
然后 Sybase 在编译时看到的所有内容是:

IF object_id('mytab') IS NULL
EXEC('something or other')
EXEC的内容直到执行时才编译,当您知道没有表并且一切正常时。

关于sybase - 如果表不存在,如何仅创建表?使用 "object_id(' 表') IS NULL"不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com