统计MSSQL中各表的行数及空间

该日志由 samool 发表于 2019-12-30 22:56:31

CREATE TABLE #table_stat 
( 
    [Name]          varchar(100),       --表名称 
    [Rows]          int,                --表行数 
    [Reserved]      varchar(1000),      --表分配空间总量 
    [Data]          varchar(1000),      --数据使用空间量 
    [Index_size]    varchar(1000),      --索引使用空间量 
    [Unused]        varchar(1000)       --未用空间量 
); 
 
EXEC sp_MSForEachTable N'INSERT INTO #table_stat EXEC sp_spaceused N''?''' 
SELECT * FROM #table_stat ORDER BY Rows DESC 
DROP TABLE #table_stat 

该日志标签: mssql

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法

该日志由 samool 发表于 2014-11-12 09:54:00

本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错.

未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

下载2007 Office system 驱动程序:数据连接组件安装

http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

此下载将安装一组组件,非 Microsoft Office 应用程序可以使用它们从 2007 Office system 文件中读取数据,
例如从 Microsoft Office Access 2007(mdb 和 accdb)文件以及 Microsoft Office Excel 2007(xls、xlsx 和 xlsb)文件中读取数据。这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。

此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。

阅读剩余部分...

该日志标签: 数据库, mssql, oldedb

MSSQL日期代码格式

该日志由 samool 发表于 2014-03-01 22:24:47

1 SELECT CONVERT(varchar(100),GETDATE(),0)05920119:12AM
2 SELECT CONVERT(varchar(100),GETDATE(),1)05/09/11
3 SELECT CONVERT(varchar(100),GETDATE(),2)11.05.09
4 SELECT CONVERT(varchar(100),GETDATE(),3)09/05/11
5 SELECT CONVERT(varchar(100),GETDATE(),4)09.05.11
6 SELECT CONVERT(varchar(100),GETDATE(),5)09-05-11
7 SELECT CONVERT(varchar(100),GETDATE(),6)090511
8 SELECT CONVERT(varchar(100),GETDATE(),7)0509,11
9 SELECT CONVERT(varchar(100),GETDATE(),8)09:13:14
10 SELECT CONVERT(varchar(100),GETDATE(),9)05920119:13:14:670AM
11 SELECT CONVERT(varchar(100),GETDATE(),10)05-09-11
12 SELECT CONVERT(varchar(100),GETDATE(),11)11/05/09
13 SELECT CONVERT(varchar(100),GETDATE(),12)110509
14 SELECT CONVERT(varchar(100),GETDATE(),13)0905201109:13:14:670
15 SELECT CONVERT(varchar(100),GETDATE(),14)09:13:14:670
16 SELECT CONVERT(varchar(100),GETDATE(),20)2011-05-0909:13:14
17 SELECT CONVERT(varchar(100),GETDATE(),21)2011-05-0909:13:14.670
18 SELECT CONVERT(varchar(100),GETDATE(),22)05/09/119:15:33 AM
19 SELECT CONVERT(varchar(100),GETDATE(),23)2011-05-09
20 SELECT CONVERT(varchar(100),GETDATE(),24)09:15:33
21 SELECT CONVERT(varchar(100),GETDATE(),25)2011-05-0909:15:33.140
22 SELECT CONVERT(varchar(100),GETDATE(),100)05920119:15AM
23 SELECT CONVERT(varchar(100),GETDATE(),101)05/09/2011
24 SELECT CONVERT(varchar(100),GETDATE(),102)2011.05.09
25 SELECT CONVERT(varchar(100),GETDATE(),103)09/05/2011
26 SELECT CONVERT(varchar(100),GETDATE(),104)09.05.2011
27 SELECT CONVERT(varchar(100),GETDATE(),105)09-05-2011
28 SELECT CONVERT(varchar(100),GETDATE(),106)09052011
29 SELECT CONVERT(varchar(100),GETDATE(),107)0509,2011
30 SELECT CONVERT(varchar(100),GETDATE(),108)09:16:38
31 SELECT CONVERT(varchar(100),GETDATE(),109)05920119:16:38:543AM
32 SELECT CONVERT(varchar(100),GETDATE(),110)05-09-2011
33 SELECT CONVERT(varchar(100),GETDATE(),111)2011/05/09
34 SELECT CONVERT(varchar(100),GETDATE(),112)20110509
35 SELECT CONVERT(varchar(100),GETDATE(),113)0905201109:17:19:857
36 SELECT CONVERT(varchar(100),GETDATE(),114)09:17:19:857
37 SELECT CONVERT(varchar(100),GETDATE(),120)2011-05-0909:17:19
38 SELECT CONVERT(varchar(100),GETDATE(),121)2011-05-0909:17:19.857
39 SELECT CONVERT(varchar(100),GETDATE(),126)2011-05-09T09:17:19.857
40 SELECT CONVERT(varchar(100),GETDATE(),130)6 ????? ???????14329:17:19:857AM
41 SELECT CONVERT(varchar(100),GETDATE(),131)6/06/14329:17:19:857AM

该日志标签: 日期, mssql

关于MSSQL update 累加更新null的问题

该日志由 samool 发表于 2013-10-28 16:12:53

遇到一个问题,累加更新备注字段

update 备注=备注+'新的内容'  where id=110

这样更新没有问题,但是当备注为null的时候,就有问题了

null+任何字符串都是null,我操,所以更新不成功,必须要转换一下。

update 备注=isnull(备注,'')+'新的内容'  where id=110

加一个判断就可以了。

该日志标签: update, mssql, NULL

MSSQL复制表

该日志由 samool 发表于 2013-01-22 10:54:30

复制表结构有句型的--跨数据库

--复制结构+数据
select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名
 
--只复制结构
select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名 where 1=0

--复制到临时表
select * into #temptablename from 数据库名.dbo.原表名 where 1=0

该日志标签: mssql, 复制表, 复制表结构

MSSQL 游标多参数/取多列值

该日志由 samool 发表于 2013-01-09 16:33:16

游标多参数循环操作,效率确实高了不少。

CREATE                  PROCEDURE p  AS

declare  @UserID  int
declare  @MinID  int
declare  @UserTEL varchar(20)
 
declare  cur_getUserID  cursor  for
      select main_id,tel,min(id)  from tel group by tel,main_id having count(*)>1    
 --select main_id,tel,min(id)  from tel where main_id=962192 and tel='15882188374' group by tel,main_id

open  cur_getUserID

fetch  next  from  cur_getUserID into @UserID,@UserTEL,@MinID
while(@@fetch_status  =  0)
begin 
 
 delete from tel where main_id=@UserID and tel=@UserTEL and id<>@MinID

 fetch  next  from  cur_getUserID into @UserID,@UserTEL,@MinID
end

close  cur_getUserID
deallocate  cur_getUserID

GO

该日志标签: mssql, 游标

MSSQL查出一个数据库所有表名及表中含有数据条数?

该日志由 samool 发表于 2009-01-21 15:36:04

MSSQL查出一个数据库所有表名及表中含有数据条数?

EXEC sp_MSforeachtable @command1="print '?'", @command2= "SELECT count(*) FROM ? "

该日志标签: 数据库, mssql, 记录总数

MSSQL获取表中所有字段名称

该日志由 samool 发表于 2008-10-07 15:13:11

select name from syscolumns where id=object_id('表名') order by colid

该SQL查询条件可以获得指定表的所有字段名称

以colid排序后,显示的字段名称顺序跟表设计的顺序是一致的,不排序的话就是字段的首字母排序。

该日志标签: mssql, 字段

MSSQL分页存储过程

该日志由 samool 发表于 2008-08-14 10:47:21

一段MSSQL分页的存储过程,先收藏了,备用。

CREATE PROCEDURE GTNews_Search
(
             @SearchSQL nvarchar(4000),
 @RecordCountSQL nvarchar(4000),
 @PageIndex int=0,
 @PageSize int=25
)
AS
BEGIN


DECLARE @StartTime datetime
 DECLARE @RowsToReturn int
 DECLARE @PageLowerBound int
 DECLARE @PageUpperBound int
 DECLARE @Count int

-- Used to calculate cost of query
 SET @StartTime = GetDate()

-- Set the rowcount
 SET @RowsToReturn = @PageSize * (@PageIndex + 1)
 SET ROWCOUNT @RowsToReturn

-- Calculate the page bounds
 SET @PageLowerBound = @PageSize * @PageIndex
 SET @PageUpperBound = @PageLowerBound + @PageSize + 1

-- Create a temp table to store the results in
 CREATE TABLE #SearchResults
 (
  IndexID int IDENTITY (1, 1) NOT NULL,
  NewsID int
 )

-- Fill the temp table
 INSERT INTO #SearchResults (NewsID)
 exec (@SearchSQL)

-- SELECT actual search results from this table
 SELECT
  D.*,catname=(SELECT title FROM GT_news_cat WHERE id=D.catid)
 FROM
  GT_news_data D,
  #SearchResults R
 WHERE
  R.NewsID = D.ID AND
  R.IndexID > @PageLowerBound AND
  R.IndexID < @PageUpperBound

 -- Do we need to return a record estimate?
 exec (@RecordCountSQL) 


            SELECT Duration = GetDate() - @StartTime
END
GO

该日志标签: 存储过程, mssql

php读取mssql日期出现中文字符的解决方法

该日志由 samool 发表于 2008-08-08 17:47:21

最近用php和mssql开发东西发现,用php读取的mssql日期字段会将日期自动转换成中文方式。
比如:2005-12-23 读出以后页面会显示为:2005 十二月 23 ,这样给程序处理带来很多不便。查找了一些资料发现是php.ini默认了日期处理功能。
解决方法为:
第一个方法:php文档开头定义ini_set(”mssql.datetimeconvert”,”0″);
第二个方法:修改php.ini,找到;mssql.datetimeconvert = On ,去掉前面的分号,修改on为off,重启apache即可

该日志标签: php, mssql, date