目录
一、SQL 数据表生成网页版的数据字典方法
执行如下SQl,输出文本格式的数据结果,复制到Txt中,去除虚线,修改后缀名为Html即可
SET NOCOUNT ON
DECLARE @TableName NVARCHAR (500)
DECLARE
Tbls CURSOR FOR
SELECT DISTINCT tb.name
FROM sys.tables as tb
ORDER BY tb.name
OPEN Tbls
PRINT '<!DOCTYPE html>'
PRINT '<html>'
PRINT '<head>'
PRINT N'<title>数据库字典</title>'
PRINT '<style type="text/css">'
PRINT 'body{margin:0; font:11pt "arial", "微软雅黑"; cursor:default;}'
PRINT '.tableBox{margin:10px auto; padding:0px; width:1200px; height:auto; background:#FBF5E3; border:1px solid #45360A}'
PRINT '.tableBox h3 {font-size:12pt; height:auto; line-height:30px; background:#45360A; padding:0px 0px 0px 15px; color:#FFF; margin:0px; text-align:left }'
PRINT '.tableBox caption {font-size:12pt; height:auto; line-height:30px; background:#45360A; color: #FFF; text-align: center; font-weight: bold; }'
PRINT '.tableBox table {width:1200px; padding:0px;border-spacing: 0; border-collapse: collapse;}'
PRINT '.tableBox th {height:25px; border-top:1px solid #FFF; border-left:1px solid #FFF; background:#F7EBC8; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT '.tableBox td {height:25px; padding-left:10px; border-top:1px solid #FFF; border-left:1px solid #FFF; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT '</style>'
PRINT '</head>'
PRINT '<body>'
FETCH NEXT FROM Tbls INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '<div class="tableBox">'
PRINT '<table>'
PRINT N'<caption>表 ' + @TableName + '</caption>';
PRINT '<tr>'
PRINT N'<th>字段名称</th>'
PRINT N'<th>描述</th>'
PRINT N'<th>主键</th>'
PRINT N'<th>外键</th>'
PRINT N'<th>类型</th>'
PRINT N'<th>长度</th>'
PRINT N'<th>数值精度</th>'
PRINT N'<th>小数位数</th>'
PRINT N'<th>允许为空</th>'
PRINT N'<th>计算列</th>'
PRINT N'<th>标识列</th>'
PRINT N'<th>默认值</th>'
SELECT '</tr><tr>',
'<td>' + CAST (clmns.name AS VARCHAR (35)) + '</td>',
'<td>'
+ ISNULL (CAST (exprop.value AS NVARCHAR (500)), '')
+ '</td>',
'<td>'
+ CAST (ISNULL (idxcol.index_column_id, 0) AS VARCHAR (20))
+ '</td>',
'<td>'
+ CAST (
ISNULL (
(SELECT TOP 1 1
FROM sys.foreign_key_columns AS fkclmn
WHERE fkclmn.parent_column_id = clmns.column_id
AND fkclmn.parent_object_id = clmns.object_id),
0) AS VARCHAR (20))
+ '</td>',
'<td>' + CAST (udt.name AS CHAR (15)) + '</td>',
'<td>'
+ CAST (
CAST (
CASE
WHEN typ.name IN (N'nchar', N'nvarchar')
AND clmns.max_length <> -1
THEN
clmns.max_length / 2
ELSE
clmns.max_length
END AS INT) AS VARCHAR (20))
+ '</td>',
'<td>'
+ CAST (CAST (clmns.precision AS INT) AS VARCHAR (20))
+ '</td>',
'<td>' + CAST (CAST (clmns.scale AS INT) AS VARCHAR (20)) + '</td>',
'<td>' + CAST (clmns.is_nullable AS VARCHAR (20)) + '</td>',
'<td>' + CAST (clmns.is_computed AS VARCHAR (20)) + '</td>',
'<td>' + CAST (clmns.is_identity AS VARCHAR (20)) + '</td>',
'<td>'
+ isnull (CAST (cnstr.definition AS VARCHAR (20)), '')
+ '</td>'
FROM sys.tables AS tbl
LEFT JOIN sys.all_columns AS clmns
ON clmns.object_id = tbl.object_id
LEFT JOIN sys.indexes AS idx
ON idx.object_id = clmns.object_id AND 1 = idx.is_primary_key
LEFT JOIN sys.index_columns AS idxcol
ON idxcol.index_id = idx.index_id
AND idxcol.column_id = clmns.column_id
AND idxcol.object_id = clmns.object_id
AND 0 = idxcol.is_included_column
LEFT JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id
LEFT JOIN sys.types AS typ
ON typ.user_type_id = clmns.system_type_id
AND typ.user_type_id = typ.system_type_id
LEFT JOIN sys.default_constraints AS cnstr
ON cnstr.object_id = clmns.default_object_id
LEFT JOIN sys.extended_properties exprop
ON exprop.major_id = clmns.object_id
AND exprop.minor_id = clmns.column_id
AND exprop.name = 'MS_Description'
WHERE tbl.name = @TableName
ORDER BY clmns.column_id ASC
PRINT '</tr></table>'
PRINT '</div>'
FETCH NEXT FROM Tbls INTO @TableName
END
PRINT '</body></HTML>'
CLOSE Tbls
DEALLOCATE Tbls
二、SQL缓存清理
--清除存储过程缓存
DBCC FREEPROCCACHE
--清除会话缓存
DBCC FREESESSIONCACHE
--清除系统缓存
DBCC FREESYSTEMCACHE('All')
--清除所有缓存
DBCC DROPCLEANBUFFERS
GO
三、查询数据库中存在数据表和数据量
--查询数据库中表的数据量
SELECT a.name,b.rows FROM sysobjects a
INNER JOIN sysindexes b ON a.id=b.id
WHERE b.indid IN(0,1) AND a.Type='u'
ORDER BY b.rows desc
四、数据库内存设置
--打开高级配置
exec sp_configure'show advanced options', 1
GO
--设置最大内存MB 2G
exec sp_configure 'max server memory', 2048
EXEC ('RECONFIGURE' )
--设置执行时间
WAITFOR DELAY '00:00:10'
--设置最大内存MB 20G
EXEC sp_configure 'max server memory', 20480
EXEC ('RECONFIGURE' )
GO
--关闭高级配置
exec sp_configure'show advanced options',0
GO
五、数据库表关系查询
SELECT
fk.name 'FK Name',
tp.name 'Parent table',
cp.name, cp.column_id,
tr.name 'Refrenced table',
cr.name, cr.column_id
FROM
sys.foreign_keys fk
INNER JOIN
sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN
sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN
sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN
sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN
sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY
tp.name, cp.column_id