本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议
》和
《
阿里云开发者社区知识产权保护指引
》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单
进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
b.rows
AS
[
RECORD COUNT
]
FROM
sysobjects
AS
a
INNER
JOIN
sysindexes
AS
b
ON
a.id
=
b.id
WHERE
( a.type
=
'
u
'
)
AND
( b.indid
IN
(
0
,
1
) )
ORDER
BY
a.name ,
b.rows
DESC
//查询所有的标明及空间占用量\行数
select
object_name(id) tablename,
8*reserved/1024 reserved,
rtrim(8*dpages)+'kb' used,
8*(reserved-dpages)/1024 unused,
8*dpages/1024-rows/1024*minlen/1024 free,
--,*
from sysindexes
where indid=1
order by tablename,reserved desc
SELECT T.TABLE_NAME AS [TABLE NAME] ,
MAX(I.ROWS) AS [RECORD COUNT]
FROM SYSINDEXES I ,
INFORMATION_SCHEMA.TABLES T
WHERE T.TABLE_NAME = OBJECT_NAME(I.ID)
AND T.TABLE_TYPE = 'BASE TABLE'
GROUP BY T.TABLE_SCHEMA ,
T.TABLE_NAME;
---------------------------------------------------------------
SELECT OBJECT_NAME(id) AS [TABLE NAME] ,
rowcnt AS [RECORD COUNT]
FROM sysindexes
WHERE indid < 2
AND OBJECTPROPERTY(id, 'ismsshipped') = 0
ORDER BY OBJECT_NAME(id)
--执行存储过程
EXEC sp_msforeachtable 'insert into ##RowCount ([TABLE NAME],[RECORD COUNT]) select ''?'' tableName, count(*) dataCount from ?'
--查询结果
SELECT *
FROM ##RowCount
ORDER BY [TABLE NAME]
DROP TABLE ##RowCount
--统计一个数据库中所有表记录的数量
-- 最近公司的数据库发现有表的数据被弄掉了,有些数据表记录为0,于是想找出此数据库中到底有哪些数据表的记录都为0以缩小分析范围,可使用如下的SQL Statement:
CREATE TABLE #tmptb
tbname sysname ,
tbrows INT ,
tbREserved VARCHAR(10) ,
tbData VARCHAR(10) ,
tbIndexSize VARCHAR(10) ,
tbUnUsed VARCHAR(10)
INSERT INTO #tmptb
EXEC sp_MSForEachTable 'EXEC sp_spaceused ''?'''
SELECT *
FROM #tmptb
--列出所有表的情况
SELECT tbrows ,
tbname
FROM #tmptb
WHERE tbrows = 0 --列出记录数据为0的表
ORDER BY tbname
DROP TABLE #tmptb
--其中
--tbname 表名
--tbrows 记录数
--tbREserved 保留空间
--tbData 使用空间
--tbIndexSize 索引使用空间
--tbUnUsed 未用空间
--SQLServer遍历数据库所有表及统计表数据总数:
DECLARE @TableName VARCHAR(255);
CREATE TABLE #GetRecordingTempTable
[id] [INT] IDENTITY(1, 1)
NOT NULL ,
[TableName] VARCHAR(255) NOT NULL ,
[RecordingCount] INT
DECLARE Table_Cursor CURSOR
SELECT [name]
FROM sysobjects
WHERE xtype = 'U';
OPEN Table_Cursor;
FETCH NEXT FROM Table_Cursor INTO @TableName;
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
EXEC('INSERT INTO #GetRecordingTempTable ([TableName],[RecordingCount]) SELECT '''+@TableName+''', COUNT(0) FROM ['+@TableName+'];');
FETCH NEXT FROM Table_Cursor INTO @TableName;
CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;
SELECT [TableName] AS [表名称] ,
[RecordingCount] AS [总记录数]
FROM #GetRecordingTempTable
ORDER BY [TableName];
DROP TABLE #GetRecordingTempTable;
tp读取sqlserver数据库一个表的时候一个字段类型是text,数据有空格读取出的数据有乱码解决方案...
$sql="SELECT *, REPLACE(CONVERT(varchar(500), GoodsInfo), CHAR(32), ' ') AS GoodsInfo
FROM tDelivery
WHERE (DeliveryID = '$DeliveryID')";
GoodsInfo这字段是text类型的,不支持REPLACE函数,所以先用CONVERT把这个字段强行转化成varchar500,然后再用REPLACE 把字段里面的空格 CHAR(32)替换成空就ok了!
王磊-phper
原文:sql server 查询本年的每个月的数据
一、以一行数据的形式,显示本年的12月的数据,本示例以2017年为例,根据CreateDate字段判断,计算总和,查询语句如下:
select sum(case when datepart(month,CreateDate)=1 then ...