当前位置:首页 » 编程语言 » sql检查表是否存在
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql检查表是否存在

发布时间: 2022-06-27 07:43:43

sql server 如何查询某张表是否存在

select * from 表名。查询分析器会告诉你这个表在不在的

❷ sql 判断一个表是否存在

用户表在当前数据库的系统表中,可使用以下语句进行查找:
select Name,ID from sysobjects where xtype='U'

若是将xtype='U'换成xtype='V'就可以查出来所有视图
xtype参数大概有以下种类:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程

❸ SQL语句问题 如何查询出此表是否存在,如表名:tableName

SQL学习之查询技巧 查询表是否存在的两种方法
方法一 判断系统对象是否存在

DECLARE
@DbTableFileName VARCHAR(100)

SET @DbTableFileName = 'tx'

IF objectproperty(object_id(@DbTableFileName),'IsUserTable') IS NOT NULL
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

IF object_id(@DbTableFileName) IS NOT NULL
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

IF EXISTS (SELECT Object_id(@DbTableFileName))
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

方法二 通过查询系统表

DECLARE
@DbTableFileName VARCHAR(100)

SET @DbTableFileName = 'tx'

IF EXISTS (SELECT 1
FROM sysobjects
WHERE name = @DbTableFileName
AND TYPE = 'u')
PRINT 'EXISTS '
ELSE
PRINT 'NOT EXISTS '

方法一更安全,

❹ 用SQL语句判断数据表是否存在

Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名'); --ACCESS适用判断表存在

❺ sql检查表是否存在

你是什么数据库, 检查表是否存在呀?


SQL Server 2005 以上版本数据库的话


1>selecttop10namefromsys.tables
2>go
name

------------------------------------------
BLOCK_TYPE_LINK
STOCK
STOCK_BLOCK_LINK
STOCK_DAY
SALE_REPORT
tb
TestSara
TestWhyypp
TestTDWS
TestWZY


(10行受影响)


你看看行不行?

就是通过 查询sys.tables 来判断, 某个表, 是否存在。

❻ sql语句 判断表数据是否存在另一个表中

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

❼ sql 中如何查询这个表是否存在,并删除重建

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

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

如果是判断 表存在
那么 前面的
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

这种情况下, 就麻烦了

❽ 怎么判断sql数据库是否存在,存在删除

判断数据库,如果存在则删除:

IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))

DROP DATABASE dbname

如果提示:删除数据库时提示数据库正在被使用,无法删除(Cannot drop database databasename because it is currently in use),使用:

IF (EXISTS(SELECT * FROM master.dbo.sysdatabases WHERE dbid=db_ID('dbname')))

BEGIN

USE master

ALTER DATABASE dbname

SET single_user

WITH ROLLBACK IMMEDIATE

DROP DATABASE dbname

(8)sql检查表是否存在扩展阅读

判断储存过程,如果存在则删除

IF (EXISTS(SELECT * FROM sysobjects WHERE name='procerename' AND type='P'))

DROP PROCEDURE procerename

判断触发器,如果存在则删除

IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[triggername]') AND OBJECTPROPERTY(id, N'IsTrigger') = 1))

DROP TRIGGER triggername

判断用户函数是否存在,如果存在则删除

此处type有两种: 'TF'- Table-Value Function 表值函数 'FN'- Scalar-Value Function 标量值函数

IF (EXISTS(SELECT * FROM sysobjects WHERE id=object_id(N'[dbo].[userfunction]') AND (type='FN' OR type='TF')))

DROP FUNCTION userfunction

❾ 怎样可以检测SQL数据库中某个表是否存在

在sql数据库中有一个sysobjects表,记录当前所有的表名可以用Query(SQL语句)SELECT * FROM sysobjectsWHERE '表名' = Name或用Table打开,用Locate找一下