TA的每日心情 | 奋斗 2022-8-5 08:00 |
---|
签到天数: 265 天 [LV.8]以坛为家I
|
1、查询数据库中的所有表名称:
SELECT name FROM SysObjects Where XType='U' ORDER BY Name
2、查询数据库中指定表的表结构:
--快速查看表结构
SELECT CASE WHEN col.colorder = 1 THEN obj.name
ELSE ''
END AS 表名,
col.colorder AS 序号 ,
col.name AS 列名 ,
ISNULL(ep.[value], '') AS 列说明 ,
t.name AS 数据类型 ,
col.length AS 长度 ,
ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小数位数 ,
CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN'1'
ELSE ''
END AS 标识 ,
CASE WHEN EXISTS ( SELECT 1
FROM dbo.sysindexes si
INNER JOIN dbo.sysindexkeys sik ON si.id =sik.id
AND si.indid = sik.indid
INNER JOIN dbo.syscolumns sc ON sc.id =sik.id
AND sc.colid = sik.colid
INNER JOIN dbo.sysobjects so ON so.name =si.name
AND so.xtype = 'PK'
WHERE sc.id = col.id
AND sc.colid = col.colid ) THEN '1'
ELSE ''
END AS 主键 ,
CASE WHEN col.isnullable = 1 THEN '1'
ELSE ''
END AS 允许空 ,
ISNULL(comm.text, '') AS 默认值
FROM dbo.syscolumns col
LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype
inner JOIN dbo.sysobjects obj ON col.id = obj.id
AND obj.xtype = 'U'
AND obj.status >= 0
LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id
LEFT JOIN sys.extended_properties ep ON col.id =ep.major_id
AND col.colid = ep.minor_id
AND ep.name = 'MS_Description'
LEFT JOIN sys.extended_properties epTwo ON obj.id =epTwo.major_id
AND epTwo.minor_id = 0
AND epTwo.name = 'MS_Description'
WHERE obj.name = 'PkAutoInc'--表名
ORDER BY col.colorder ;
/*1.查询SQLSERVER中的所有数据库*/
use master
go
select * fromsysdatabases where dbid>4/*where条件用来去掉系统数据库*/
go
/*2.查询SQLSERVER中的所有数据库(存储过程)*/
exec sp_helpdb
/*3.查询指定数据库中的表*/
use 数据库名
go
select * fromsysobjects where xtype='u'/*where条件用来去掉系统表*/
go
[删除字段]
alter table tb_commonLog --表名
drop
column l_test,--去掉字段1
columnl_test2, --去掉字段2
constraintpk_name --去掉主键
go
use data;
SELECT tb2.name AS tableName,tb1.name AStriggerName FROM Sysobjects tb1
JOIN Sysobjects tb2 ON tb1.parent_obj=tb2.idWHERE tb1.type='TR'; --查触发器
SELECT name FROM sys.all_objectsWHERE type_desc = N'SQL_STORED_PROCEDURE' and substring(name,1,3) notin('sp_','xp_'); --查存储过程
exec sp_helptext '客户应收账表因其修改'; -- 查内容
select * from sys.procedures where substring(name,1,3) not in('sp_');--查存储过程
SELECT * FROM sys.all_objects wheretype='FN' and name not like 'fn_%' ;--查函数
查库所有表
use data
go
select * from sys.tables
--查询数据库所有连接进程
select * from (SELECT * FROMmaster.dbo.sysprocesses WHERE dbid IN
(
SELECT dbid FROMmaster.dbo.sysdatabases
WHERE NAME='DATA' --指定的数据库名字
)) AA inner join
(SELECT S.SPID, S.LOGINAME, S.LOGIN_TIME,S.LAST_BATCH, C.CLIENT_NET_ADDRESS
FROM sys.sysprocesses S,sys.dm_exec_connections C
WHERE S.spid = C.SESSION_ID)BB on AA.spid=BB.spid
--判断游标是否存在
if exists(select * fromMASTER.dbo.syscursors where cursor_name='youbiao')
begin
deallocate youbiao
end
;
--查看死锁
SELECT [session_id] ,
[blocking_session_id] AS '正在阻塞其他会话的会话ID' ,
DB_NAME ( [database_id] ) AS '数据库名称' ,
[request_id] ,
[cpu_time] ,
[start_time] AS '开始时间' ,
[status] AS '状态' ,
[command] AS '命令' ,
dest.[text] AS '语句' ,
[reads] AS '物理读次数' ,
[writes] AS '写次数' ,
[logical_reads] AS '逻辑读次数' ,
[row_count] AS '返回结果行数' ,
[wait_type] AS '等待资源类型' ,
[wait_time] AS '等待时间' ,
[wait_resource] AS '等待的资源'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY sys.[dm_exec_sql_text] ( der.[sql_handle] ) AS dest
WHERE 1 = 1
ORDER BY [session_id] DESC
----------查看作业
--SELECT * FROM sysjobs_view
--SELECT * FROM sysjobservers
--SELECT * FROM sysjobsteps
SELECT Jobs.name AS '作业名称' ,
CASE Jobs.enabled
WHEN 1 THEN '启用'
WHEN 0 THEN '未启用'
END AS '是否启用',
Jobs.description AS '描述信息',
Jobs.date_created AS '创建日期',
Jobs.date_modified AS '修改日期',
Steps.command AS '作业内容',
CASE Schedules.freq_type
WHEN 1 THEN '只运行一次'
WHEN 4 THEN '每天'
WHEN 8 THEN '每周'
WHEN 16 THEN '每月'
WHEN 32 THEN '每月'
WHEN 64 THEN '在代理服务启动时运行'
WHEN 128 THEN '在服务器空闲时运行'
END AS '频率',
CASE Schedules.freq_type
WHEN 1 THEN '只运行一次'
WHEN 4 THEN '每' + CAST(Schedules.freq_interval AS VARCHAR (10)) + '天'
WHEN 8 THEN '每周' + ( CASE freq_interval
WHEN 1 THEN '星期日'
WHEN 2 THEN '星期一'
WHEN 4 THEN '星期二'
WHEN 8 THEN '星期三'
WHEN 16 THEN '星期四'
WHEN 32 THEN '星期五'
WHEN 64 THEN '星期六'
END )
WHEN 16 THEN '每月' + CAST(Schedules.freq_interval AS VARCHAR (10)) + '日'
WHEN 32 THEN '每月' + ( CASE freq_interval
WHEN 1 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '个星期日'
WHEN 2 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期一'
WHEN 3 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期二'
WHEN 4 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期三'
WHEN 5 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期四'
WHEN 6 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期五'
WHEN 7 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '星期六'
WHEN 8 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一'
END ) + '天'
WHEN 9 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '工作日'
WHEN 10 THEN ( CASE freq_relative_interval
WHEN 1 THEN '第一'
WHEN 2 THEN '第二'
WHEN 4 THEN '第三'
WHEN 8 THEN '第四'
WHEN 16 THEN '最后一个'
END ) + '休息日'
END )
END AS '间隔天数',
CASE freq_subday_type
WHEN 1 THEN '指定时间'
WHEN 2 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '秒'
WHEN 4 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '分钟'
WHEN 8 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '小时'
END AS '间隔时间',
DATEADD (
HOUR ,
( active_start_time / 10000 ) % 100,
DATEADD ( MINUTE, ( active_start_time / 100 ) % 100, DATEADD ( SECOND, ( active_start_time / 1 ) % 100, CAST('00:00:00' AS TIME (0))))) AS '开始执行时间',
DATEADD (
HOUR ,
( active_end_time / 10000 ) % 100,
DATEADD ( MINUTE, ( active_end_time / 100 ) % 100, DATEADD ( SECOND, ( active_end_time / 1 ) % 100, CAST('00:00:00' AS TIME (0))))) AS '截止时间',
CONVERT ( DATE, CAST(active_start_date AS VARCHAR (20)), 23 ) AS '开始日期',
CONVERT ( DATE, CAST(active_end_date AS VARCHAR (20)), 23 ) AS '截止日期'
FROM sysjobs Jobs
JOIN sysjobschedules JobsSchedules ON Jobs.job_id = JobsSchedules.job_id
JOIN sysschedules Schedules ON JobsSchedules.schedule_id = Schedules.schedule_id
JOIN sysjobsteps Steps ON Jobs.job_id = Steps.job_id
---------------------------------------------------------真秀库神操作
USE [data]
GO
/****** Object: StoredProcedure [dbo].[dataviews] Script Date: 09/06/2020 15:41:14 ******/
SET ANSI_NULLS ON
GO
SET NOCOUNT ON
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[dataviews]
(
@data varchar(250)=''
)
AS
BEGIN
DECLARE @sql VARCHAR(500)=''
DECLARE @com VARCHAR(250)='', @obj VARCHAR(250)='';
select @com=@data +'.dbo.syscomments a,',@obj=@data + '.dbo.sysobjects b'
SET @sql=N'use ' + @data +N';'
SET @sql= @sql +N'
select b.name AS 名称,a.text AS 内容,
( CASE b.xtype WHEN ''c'' THEN ''check约束''
WHEN ''D'' THEN ''字段默认值''
WHEN ''FN'' THEN ''标量值函数''
WHEN ''IF'' THEN ''表值函数''
WHEN ''P'' THEN ''存储过程''
WHEN ''TR'' THEN ''触发器''
WHEN ''V'' THEN ''视图''
ELSE b.xtype
END )AS 类型,
ISNULL(OBJECT_NAME(b.parent_obj),''非表项目'') AS 基表,b.crdate as 创建时间 from
'
set @sql=@sql+@com +@obj + N' where a.id=b.id ORDER BY b.xtype,b.parent_obj,b.crdate desc'
PRINT @sql
exec(@sql)
END
GO
DECLARE @tabelview TABLE( 名称 VARCHAR(250),内容 VARCHAR(max),类型 VARCHAR(250),基表 VARCHAR(250),创建时间 DATETIME)
INSERT @tabelview ( 名称, 内容, 类型, 基表, 创建时间 ) EXEC data.dbo.dataviews N'data'
SELECT * FROM @tabelview
DECLARE @cretxt VARCHAR(max)
SELECT @cretxt=内容 FROM @tabelview WHERE 类型='存储过程' AND SUBSTRING(名称,1,3) NOT IN('sp_','xp_')
PRINT @cretxt
|
|