SQL求助:想创建一个表,但在创建前先判断是不是存在。如存在就删除它,不存在就创建。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL求助:想创建一个表,但在创建前先判断是不是存在。如存在就删除它,不存在就创建。相关的知识,希望对你有一定的参考价值。

参考技术A

1、创建对象时,如果没有指定Schema,就会挂在默认的Schema dbo下面。

2、User下面的有一个叫dbo的User,Schema下面有一个叫dbo的Schema,就像上面所述,前者是一个User,是用来管理授权的,后者是一个Schema,是用来分组数据库对象的,所以对象名称前面的Schema,如:dbo.table1,其中的dbo指的是Schema。

3、右键点击Schemas节点,点击菜单中的"New Schema",在创建Schema对话框中输入Schema的名称,如:demo,Schema Owner可以不指定,默认为dbo这个User,点确定创建Schema。

4、在创建表时,在表前面加上Schema名称,就可以创建,具体的SQL如下:create table demo.table1(f1 varchar(30))。

5、刷新左侧对象浏览器,可以看到新建的table1的Schema是demo,查看table1的属性,也可以看到Schema是demo。

6、使用非dbo Schema的表时,需要在表前面加上Schema名称,不然可能会出错。

使用 SQL 判断一个相关表的所有记录是不是具有相同的值

【中文标题】使用 SQL 判断一个相关表的所有记录是不是具有相同的值【英文标题】:Using SQL to determine if all records of a related table have the same value使用 SQL 判断一个相关表的所有记录是否具有相同的值 【发布时间】:2013-04-24 10:41:40 【问题描述】:

我正在尝试创建一个存储过程,该过程将根据相关表中的某些值更新一个表上的记录:

MainTable 包含一个 status 字段,并且与 SubTable 相关,SubTable 也有一个 status 字段。我需要更新 MainTable 中每条记录的状态,其中 SubTable 中的所有相关记录都具有相同的状态 x。我已经尝试了几个查询,但认为我以错误的方式处理它。任何帮助将不胜感激。谢谢。

【问题讨论】:

您的表格是否通过status 字段链接? 【参考方案1】:

例如有以下表格:

   Producer ( Code,Name,Status)
   Goods    ( GCode,PCode( Producer Code),Name,Status)

和查询:

Update   Producer  set Status=F  
where not exists (select * from Goods where Status <> X and Goods.PCode= Producer.Code)         

【讨论】:

谢谢!这似乎是我所追求的!我只是想再做一些测试以确保!【参考方案2】:

试试这个:

Update schema.yourtable s set s.fieldtoupdate = (
Select e.Relationalfield from schema.RealtionalTable  e where e.STATUSFIELD = s.STATUSFIELD);

希望对你有帮助

【讨论】:

感谢 Stanley,我已尝试过您的查询,但无法正常工作。我是这样尝试的(由于查询窗口的错误,不得不稍微调整一下):Update MainTable SET MainTable.Status= ( Select e.SubTableStatus from SubTable e where e.SubTableStatus= 11); 基本上,如果 SubTable.SubTableStatus 中的所有记录都是 11,则 MainTable.Status 必须设置为 9。给出的错误是:'子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。' 您是说状态字段不是唯一值吗?为此,状态字段必须是唯一值 不,状态不是唯一的,但我确实得到了我想要的,谢谢。但是,我确实有一个不同的问题,您的代码可以帮助解决。 啊好的很高兴你能得到帮助。

以上是关于SQL求助:想创建一个表,但在创建前先判断是不是存在。如存在就删除它,不存在就创建。的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver创建一个新表,求助

2008SQL 存储过程中可以创建视图吗

sqlserver中如何判断一个约束是不是存在?就像判断一个表或库是不是存在一样。

Java求助:如何判断某对象是不是存在?如果不存在,创建该对象

my sql 数据库语句 我要添加一条数据,但是要先判断这个数据存不存在可以一句搞完么?

oracle创建表之前判断表是不是存在,如果存在则删除已有表