>

仓库储存进程等,Sql的一些符合规律化剖断

- 编辑:www.bifa688.com -

仓库储存进程等,Sql的一些符合规律化剖断

sql server中如何剖断表也许数据库的留存,但在实质上采取中,需推断Status状态位:
内部一些状态位可由用户接纳 sp_dboption(read only、dbo use only、single user 等)进行安装:

sql server中如何判定表恐怕数据库的留存,但在实际利用中,需判别Status状态位:
中间一些状态位可由用户采用 sp_dboption(read only、dbo use only、single user 等)举办设置:

上边为你介绍sql下用了判定各个能源是或不是留存的代码,需求的对象能够参谋下,希望对你学习sql的函数及数据库能够享有扶助。
库是不是留存
if exists(select * from master..sysdatabases where name=N'库名')
print 'exists'
else

1 = autoclose;使用 sp_dboption 设置。 数据库完全关闭,其财富在最终贰个用户注销后刑释。
4 = select into/bulkcopy;使用 sp_dboption 设置。允许利用 Select INTO 语句和高速大体积复制。
8 = trunc. log on chkpt;使用 sp_dboption 设置。假设数据库处于日志截断形式,则检查点将截断日志中非移动的有的。只好为 master 数据库设置此选项。1陆 = torn page detection,使用 sp_dboption 设置。能够检验残缺页。
32 = loading。
64 = pre recovery。
128 = recovering。
256 = not recovered。
512 = offline;使用sp_dboption 设置。数据库将处于脱机状态。
1024 = read only;使用 sp_dboption 设置。用户仅能读取数据库中的数据而不能够对其实行修改。
2048 = dbo use only;使用sp_dboption 设置。只有数据库全体者能够动用数据库。
4096 = single user;使用 sp_dboption 设置。每一次只好有三个用户访问数据库。
32768 = emergency mode。
4194304 = autoshrink。
1073741824 = cleanly shutdown。

1 = autoclose;使用 sp_dboption 设置。 数据库完全关闭,其能源在最终3个用户注销后获释。
4 = select into/bulkcopy;使用 sp_dboption 设置。允许使用 Select INTO 语句和飞速大容积复制。
8 = trunc. log on chkpt;使用 sp_dboption 设置。若是数据库处于日志截断情势,则检查点将截断日志中非移动的一部分。只好为 master 数据库设置此选项。1陆 = torn page detection,使用 sp_dboption 设置。能够检查测试残缺页。
32 = loading。
64 = pre recovery。
128 = recovering。
256 = not recovered。
512 = offline;使用sp_dboption 设置。数据库将处于脱机状态。
1024 = read only;使用 sp_dboption 设置。用户仅能读取数据库中的数据而无法对其开始展览修改。
2048 = dbo use only;使用sp_dboption 设置。唯有数据库全数者能够应用数据库。
4096 = single user;使用 sp_dboption 设置。每一趟只可以有多个用户访问数据库。
32768 = emergency mode。
4194304 = autoshrink。
1073741824 = cleanly shutdown。

print 'not exists'

-- 推断要成立的表名是还是不是存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
-- 删除表
drop table [dbo].[表名]

能够而且开发七个位。

能够而且展开四个位。

GO

--判别要开创一时表是还是不是留存
If Object_Id('Tempdb.dbo.#Test') Is Not Null
Begin
print '存在'
End
Else
Begin
print '不存在'

譬如说:判别3个数据库是或不是offline
select * From master.dbo.sysdatabases where name='pubs' and status<>512

比方:决断贰个数据库是或不是offline
select * From master.dbo.sysdatabases where name='pubs' and status<>512

End

-- 推断要创制的贮存进程名是还是不是存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[仓库储存进程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
-- 删除存款和储蓄进度
drop procedure [dbo].[积累进程名]

SQL Server中判别表对象是不是留存:
select count(*) from sysobjects where id = object_id('数据库名.Owner.表名')

SQL Server中判别表对象是还是不是存在:
select count(*) from sysobjects where id = object_id('数据库名.Owner.表名')

GO

-- 推断要创立的视图名是或不是存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)
-- 删除视图
drop view [dbo].[视图名]

if exists
(select count(*) from sysobjects where id = object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'

if exists
(select count(*) from sysobjects where id = object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'

GO

-- 剖断要开创的函数名是还是不是存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))
-- 删除函数
drop function [dbo].[函数名]
GO
if col_length('表名', '列名') is null
print '不存在'
select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'

 

正文转自:

SQL Server中判定表中字段是不是留存:
if exists(select * from syscolumns where name='colname1' and id=object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
代表表tablename1中存在colname1字段
例:
select * from syscolumns where name='Test' and id=object_id('dbo.test')

SQL Server中判别表中字段是还是不是存在:
if exists(select * from syscolumns where name='colname1' and id=object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
代表表tablename1中存在colname1字段
例:
select * from syscolumns where name='Test' and id=object_id('dbo.test')

Access中推断表对象是或不是存在:
实际上,Access数据库也有系统表,存放有指标名
Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名');

Access中判定表对象是不是留存:
实则,Access数据库也有系统表,存放有对象名
Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名');

复制代码 代码如下:

 

库是或不是留存
if exists(select * from master..sysdatabases where name=N'库名')
www.bifa688.com,print 'exists'
else

复制代码代码如下:

print 'not exists'

-- 剖断要开创的表名是或不是留存
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
-- 删除表
drop table [dbo].[表名]

库是还是不是存在 
if exists(select * from master..sysdatabases where name=N'库名') 
print 'exists'
else
print 'not exists'
--------------- 
-- 判别要成立的表名是还是不是存在 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
-- 删除表 
drop table [dbo].[表名] 
GO 
--------------- 
-----列是或不是存在 
 IF COL_LENGTH( '表名','列名') IS NULL
    PRINT 'not exists'
ELSE
 PRINT 'exists'
alter table 表名 drop constraint 暗许值名称 
go 
alter table 表名 drop column 列名 
go 
----- 
--推断要开创权且表是不是存在 
If Object_Id('Tempdb.dbo.#Test') Is Not Null
Begin
print '存在'
End
Else
Begin
print '不存在'
End
--------------- 
-- 决断要创立的囤积进度名是不是存在 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[仓库储存进度名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
-- 删除存款和储蓄进程 
drop procedure [dbo].[仓库储存进度名] 
GO 
--------------- 
-- 判别要成立的视图名是不是存在 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1) 
-- 删除视图 
drop view [dbo].[视图名] 
GO 
--------------- 
-- 判定要创设的函数名是或不是存在 
if exists (select * from sysobjects where xtype='fn' and name='函数名') 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF')) 
-- 删除函数 
drop function [dbo].[函数名] 
GO 
if col_length('表名', '列名') is null
print '不存在'
select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'

GO

-----列是还是不是留存
 IF COL_LENGTH( '表名','列名') IS NULL
    PRINT 'not exists'
ELSE
 PRINT 'exists'
alter table 表名 drop constraint 默许值名称
go
alter table 表名 drop column 列名

go

--决断要开创临时表是或不是留存
If Object_Id('Tempdb.dbo.#Test') Is Not Null
Begin
print '存在'
End
Else
Begin
print '不存在'

End

-- 判别要创制的积攒进度名是或不是留存
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[存款和储蓄进度名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
-- 删除存款和储蓄进度
drop procedure [dbo].[仓储进程名]

GO

-- 剖断要开创的视图名是或不是存在
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[视图名]') and OBJECTPROPERTY(id, N'IsView') = 1)
-- 删除视图
drop view [dbo].[视图名]

GO

-- 推断要创制的函数名是不是存在
if exists (select * from sysobjects where xtype='fn' and name='函数名')
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[函数名]') and xtype in (N'FN', N'IF', N'TF'))
-- 删除函数
drop function [dbo].[函数名]
GO
if col_length('表名', '列名') is null
print '不存在'
select 1 from sysobjects where id in (select id from syscolumns where name='列名') and name='表名'

您大概感兴趣的稿子:

  • Sql Server中推断表、列不存在则创建的点子
  • Mysql判定表字段或索引是还是不是留存
  • sql server推断数据库、表、列、视图是或不是存在
  • 用SQL语句查找Access中某表是不是存在的小本事
  • MySql获取有些字段存在于哪个表的sql语句
  • sql 判别数据库,表,存款和储蓄进度等是还是不是存在的代码
  • oracle用哪些SQL语句判定表存不设有
  • SQL判定字段列是不是留存的形式
  • Oracle判别表、列、主键是或不是存在的办法

本文由bifa688.com发布,转载请注明来源:仓库储存进程等,Sql的一些符合规律化剖断