Sql 判断是否存在某张表,没有创建

下面的 SQL 是, 如果 STOCK 这个表不存在,那么创建之。

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[STOCK]') AND type in (N'U'))BEGINCREATE TABLE [dbo].[STOCK]( [STOCK_CODE] [varchar](10) NOT NULL, [STOCK_NAME] [varchar](50) NOT NULL)ENDGO

如果是判断 表存在那么 前面的 IF NOT EXISTS 修改为IF EXISTS 删除,重建的 SQL ,就写在那个 BEGIN END 里面。

-----DROP TABLE 不能用于除去由 FOREIGN KEY 约束引用的表。必须先除去引用的 FOREIGN KEY 约束或引用的表。

偷懒的办法,就是 如果表存在, 那么删除掉这样的操作, 多执行几次最后统一 建表这么处理的结果就是第一次处理, 所有没有 FOREIGN KEY 约束引用的表 与 引用的 FOREIGN KEY 约束或引用的表 被删除了.第二次处理, 某些原来不能删除的表,由于 引用的 FOREIGN KEY 约束或引用的表 被删除了, 现在可以删除了.麻烦在于:如果数据库体系太复杂比如:学校 是 系的 FOREIGN KEY 系 是 班级的 FOREIGN KEY 班级 是 学生的 FOREIGN KEY 学生是 考试成绩的 FOREIGN KEY 这种情况下, 就麻烦了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值