你从sysobjects中选择1是什么意思..?

时间:2018-03-26 08:48:02

标签: sql-server tsql

我见过这个用于检查表是否存在的查询:

kernel-version

我是否可以获得有关此特定代码如何工作以及是否需要1和sysobject的解释?

2 个答案:

答案 0 :(得分:1)

给定代码段的目的是确保数据库表在运行后不存在。它通过检查系统元信息中是否存在表并在找到表时删除表来实现此目的。

sysobjectsaccording to documentation

的系统表
  

在数据库中创建的每个对象都包含一行,例如约束,默认,日志,规则和存储过程。

根据上面链接的文件名为" test"由type = 'U' AND name = 'test'表示在该表中。由于我们只关心行的存在而不需要实际值,因此我们选择任何小的含义值,因此select 1。如果您更喜欢它,它也可能是select 'yabadabadoo'

另外,注释文档强调指定的表sysobjects已弃用,不应再使用,并提示您应该使用视图sys.objects

答案 1 :(得分:0)

如果特定表在数据库中可用,则此脚本将删除相同的表。选择' 1'表示表的存在。 sysobjects包含数据库中可用的对象列表。类型=' U'将对象类型定义为用户表。此脚本主要在更改任何对象之前使用。