由于早期建立数据库的时候不太在意也不太懂数据精确度的问题,所以对数值的存储都是用的float,发现的时候悔之晚矣,也就一直没改,今天又看到了个5.123232313E-14我下定决心。。。改decimal吧,结果发现没想象的那么简单,报错如下
“MBom”表
- 无法修改表。
The query has been canceled because the estimated cost of this query (598) exceeds the configured threshold of 300. Contact the system administrator.
这个意思貌似是查询的占用量超过了规定的最大值,杂搞?Bing一下。。。
在修改后的Designer上右键,选这个,把内容考出来,新建一个查询
在最上面加这么一句
SET QUERY_GOVERNOR_COST_LIMIT 0;
执行。ok!
本文链接
前段时间做过这么一件事情,把原本放在c盘的所有数据库(除了sql server系统文件外)文件Move到D盘,主要是为了方便后续管理以及减少磁盘I/O阻塞(C,D是2个独立磁盘)。
脚本很简单,在此只是记录下来,以免以后忘记,也方便复用:
这个脚本只有2个参数需要输入,即:目标数据库名字和目标目录
GO
DECLARE
@DBName sysname,
@DestPath varchar(256)
DECLARE @DB table(
name sysname,
physical_name sysname)
BEGIN TRY
SELECT
@DBName = 'TargetDatabaseName', --input database name
@DestPath = 'D:\SqlData\' --input destination path
-- kill database processes
DECLARE @SPID varchar(20)
DECLARE curProcess CURSOR FOR
SELECT spid
FROM sys.sysprocesses
WHERE DB_NAME(dbid) = @DBName
OPEN curProcess
FETCH NEXT FROM curProcess INTO @SPID
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC('KILL ' + @SPID)
FETCH NEXT FROM curProcess
END
CLOSE curProcess
DEALLOCATE curProcess
-- query physical name
INSERT @DB(
name,
physical_name)
SELECT
A.name,
A.physical_name
FROM sys.master_files A
INNER JOIN sys.databases B
ON A.database_id = B.database_id
AND B.name = @DBName
WHERE A.type <=1
--set offline
EXEC('ALTER DATABASE ' + @DBName + ' SET OFFLINE')
--move to dest path
DECLARE
@login_name sysname,
@physical_name sysname,
@temp_name varchar(256)
DECLARE curMove CURSOR FOR
SELECT
name,
physical_name
FROM @DB
OPEN curMove
FETCH NEXT FROM curMove INTO @login_name,@physical_name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @temp_name = RIGHT(@physical_name,CHARINDEX('\',REVERSE(@physical_name)) - 1)
EXEC('exec xp_cmdshell ''move "' + @physical_name + '" "' + @DestPath + '"''')
EXEC('ALTER DATABASE ' + @DBName + ' MODIFY FILE ( NAME = ' + @login_name
+ ', FILENAME = ''' + @DestPath + @temp_name + ''')')
一、数据库系统概述
D(Data)数据
DB(DataBase)数据库
DBMS(DataBase Management System)数据库管理系统
DBS(DataBase Sysem)数据库系统
二、数据库的发展
1.人工管理阶段
2.文件系统阶段
3.数据库系统阶段
三、数据库系统的特点
1.数据结构化
2.数据的共享性高,冗余度低,易扩充
3.数据独立性高
物理独立性:用户的应用程序与储存在磁盘上的数据库中的数据时相互独立的。
逻辑独立性:用户的应用程序与数据库的整体逻辑结构是独立的。
4.数据由DBMS统一管理和控制
四、数据模型
数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据库系统中用以提供信息表示和操作手段的形式构架。(百度百科)
组成要素:
1.数据结构(层次结构、网状结构、关系结构、面向对象结构)
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。目前主流的关系数据库有oracle、SQL、access、db2、sqlserver,sybase等。
2.数据操作(查、插、删、改等)
3.数据完整性约束
五、概念模型
概念模型是对真实世界中问题域内的事物的描述,不是对软件设计的描述。概念的描述包括:记号、内涵、外延,其中记号和内涵(视图)是其最具实际意义的。
信息世界中的基本概念:
1.实体——客观存在可以相互识别的事物
2.属性——实体所具有的某一特性
3.码——唯一标识实体的属性集
4.域——属性的取值范围,是具有相同数据类型的数据集合
5.实体型——具有想同属性的实体必然有相同的特征和属性
例如:教师(教师号, 姓名, 年龄, 职称)
6.实体集——相同实体的集合
7.联系——事物内部或事物之间的关联
联系的种类:
1.一对一
2.一对多
3.多对多
六、概念模型的表示(E-R图)
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩
形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接
起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。
构图要素
关系模型:用二维表的形式表示