创建数据库时如何修改数据库db
发布网友
发布时间:2022-04-22 04:27
我来回答
共2个回答
懂视网
时间:2022-05-01 18:46
create database newdb
on primary
(name=‘newdb‘, filename=‘D:MSSQLServer
ewdb.mdf‘, size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_1‘,filename=‘D:MSSQLServer
ewdb_1.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_2‘,filename=‘D:MSSQLServer
ewdb_2.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_3‘,filename=‘D:MSSQLServer
ewdb_3.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_4‘,filename=‘D:MSSQLServer
ewdb_4.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
log on
(name=‘newdb_log‘,filename=‘D:MSSQLServer
ewdb_log.ldf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
go
参数name指定逻辑文件名(logical_file_name),参数FileName指定物理文件名,SQL Server通过逻辑文件名引用数据文件或日志文件。
2,查看当前数据库的文件
use newdb
go
select df.file_id,
df.type,
df.type_desc,
df.name,
df.physical_name,
df.state,
df.state_desc,
df.size*8/1024/1024 as size_gb,
df.max_size*8/1024/1024 as max_size_gb,
df.growth,
df.is_percent_growth,
fg.name as filegroup_name,
fg.is_default
from sys.database_files df
inner join sys.filegroups fg
on df.data_space_id=fg.data_space_id
3,查看所有数据库的文件
select
DB_NAME(mf.database_id) as dbname,
mf.file_id,
mf.type as file_type,
mf.type_desc,
mf.data_space_id as file_group,
mf.name as logical_file_name,
mf.physical_name,
mf.state_desc,
mf.size*8/1024/1024 as size_gb,
mf.max_size*8/1024/1024 as max_size_gb,
mf.growth,
mf.is_percent_growth
from sys.master_files mf
--where database_id=db_id(‘newdb‘)
二,增加数据/日志文件
1,增加文件组(File Group)
use master
go
alter database newdb
add filegroup fg_newdb1;
2,向fg_newdb1文件组(File Group)中增加数据文件
alter database newdb
add file
(name=fg_newdb1_1,filename =‘d:MSSQLServerfg_newdb1_1.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
to filegroup fg_newdb1;
3,增加日志文件
alter database newdb
add log file
(name=newdb_log_1,filename =‘d:MSSQLServer
ewdb_log_1.ldf‘,size=1GB,maxsize=10GB,filegrowth=1GB);
三,修改数据库文件
1,修改数据文件的逻辑文件名(Logical file name)
MODIFY FILE ( NAME = ‘logical_file_name’, NEWNAME = ‘new_logical_name’ )
示例,将数据文件fg_newdb1_1 的逻辑文件名修改 fg_newdb1_file1
alter database newdb
modify file
(NAME =‘fg_newdb1_1‘,newname=‘fg_newdb1_file1‘)
2,修改数据文件的物理文件名
MODIFY FILE ( NAME = logical_file_name, FILENAME = ‘ new_path/os_file_name ‘ )
修改数据文件的物理文件名,能够将数据文件移动到不同的位置上,分四步实现:
step1,在数据库中注册数据文件的新的物理文件名
alter database newdb
modify file
(name=‘fg_newdb1_file1‘,filename=‘F:MSSQLServerfg_newdb1_file1.ndf‘);
语句执行成功之后,数据库会显示:物理文件名已经在系统目录中修改
The file "fg_newdb1_file1" has been modified in the system catalog. The new path will be used the next time the database is started.
step2,使数据库离线
use master
go
alter database newdb
set offline
with rollback immediate;
在将数据库离线(脱机,take offline)时,如果数据中有Sleeping Session存在,或者有query正在执行,那么Take Offline操作会一直等待下去,直到没有任何query运行,使用 ROLLBACK IMMEDIATE 选项,能够立即回滚数据库中正在执行的所有事务,使Take Offline 操作迅速完成。
step3,将数据文件移动到新的位置上
以管理员权限运行move命令将文件移动到新的位置上,并重命名为新的物理文件名
move D:MSSQLServerfg_newdb1_1.ndf F:MSSQLServerfg_newdb1_file1.ndf
step4,使数据库联机
use master
go
alter database newdb
set online
四,从数据库中移除数据文件
在SQL Server中,不管是日志文件,还是数据文件,在删除之前,必须清空,只有空的文件才能从数据库中删除。
1,从数据库中删除数据文件
step1,清空数据文件
USE [db_study]
GO
DBCC SHRINKFILE (N‘db_study_file1‘ , EMPTYFILE)
GO
Step2, 从数据库中删除数据文件
USE master;
GO
ALTER DATABASE db_study
REMOVE FILE db_study_file1;
GO
2,从数据库中删除日志文件
step1,清空日志文件
USE [db_study]
GO
DBCC SHRINKFILE (N‘db_study_log1‘ , EMPTYFILE)
GO
step2,从数据库中删除日志文件
USE master;
GO
ALTER DATABASE db_study
REMOVE FILE db_study_log1;
GO
3,从数据库中删除文件组
USE master;
GO
ALTER DATABASE db_study
REMOVE FILEGROUP fg_study1;
GO
DB1:数据库的创建和文件的修改
标签:重命名 成功 media alter cat 实现 ace where 写日志
热心网友
时间:2022-05-01 15:54
--修改数据库文件增量
USE master
GO
Alter DATABASE Test
MODIFY FILE
(NAME = test,
-- SIZE = 1000MB,
--MAXSIZE = 10000MB,
FILEGROWTH = 100MB)
GO
--修改数据库日志文件增量
USE master
GO
Alter DATABASE Test
MODIFY FILE
(NAME = test_log,
-- SIZE = 1000MB,
--MAXSIZE = 10000MB,
FILEGROWTH = 100MB)
GO
参考以下内容:
[c-sharp]view plaincopyprint?
/*
一般的虚拟主机上,附送的sql server数据库都是*了大小,比如100M。当你的数据库空间达到了指定的100M时,插入新数据就会报错:
未能为数据库 'a1116173958' 中的对象 'fc_Info' 分配空间,因为文件组 'PRIMARY' 已满
其实,有些主机商的数据库大小是可以自己修改的。当然,修改之前你需要知道数据库名(这里是逻辑名称),一般的这个名称是很容易知道的,就是数据库名称。
你可以尝试下在自己编写的程序中,或空间的管理后台中等可以执行sql语句的地方试一下下面的语句:
Alter DATABASE 数据库名
modify FILE
( NAME = 数据库名,
MAXSIZE = 200MB,
FILEGROWTH = 5MB)
如果执行成功,那么恭喜你了。
========我是分割线============================================
下面是Alter DATABASE的一些参考资料,详细可以查看sql server帮助。
在数据库中添加或删除文件和文件组。也可用于更改文件和文件组的属性,例如更改文件的名称和大小。Alter DATABASE 提供了更改数据库名称、文件组名称以及数据文件和日志文件的逻辑名称的能力。
Alter DATABASE 支持数据库选项的设置。在早期版本的 Microsoft® SQL Server™ 中,这些选项可以通过 sp_dboption 存储过程来设置。在此次发布的版本中,SQL Server 继续支持 sp_dboption存储过程,但在未来版本中可能不再支持。可使用 DATABASEPROPERTYEX 函数检索数据库选项的当前设置。
语法
Alter DATABASE database
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ]
| ADD LOG FILE < filespec > [ ,...n ]
| REMOVE FILE logical_file_name
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILE < filespec >
| MODIFY NAME = new_dbname
| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name }
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < collation_name >
}
< filespec > ::=
( NAME = logical_file_name
[ , NEWNAME = new_logical_name ]
[ , FILENAME = 'os_file_name' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
< optionspec > ::=
<state_option>
| < cursor_option >
| < auto_option >
| < sql_option >
| < recovery_option >
< state_option > ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
| { OFFLINE | ONLINE }
| { READ_ONLY | READ_WRITE }
< termination > ::=
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
< cursor_option > ::=
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }
< auto_option > ::=
AUTO_CLOSE { ON | OFF }
| AUTO_Create_STATISTICS { ON | OFF }
| AUTO_SHRINK { ON | OFF }
| AUTO_Update_STATISTICS { ON | OFF }
< sql_option > ::=
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
< recovery_option > ::=
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }
创建数据库时如何修改数据库db
在数据库中添加或删除文件和文件组。也可用于更改文件和文件组的属性,例如更改文件的名称和大小。Alter DATABASE 提供了更改数据库名称、文件组名称以及数据文件和日志文件的逻辑名称的能力。Alter DATABASE 支持数据库选项的设置。在早期版本的 Microsoft® SQL Server™ 中,这些选项可以通过 ...
如何修改MySQL数据库名称
方法一:使用mysqldump导出数据后,新建数据库并导入。创建新库使用mysqldump导出"old_db"数据导入数据至新库"new_db"方法二:通过修改表名称间接实现数据库名称的更改。创建新库使用"RENAME TABLE"命令,将"old_db"中的表移动至新库删除原"old_db"库利用shell脚本批量修改表名在MySQL中,通过上述步骤,...
用ddl语句操作数据库和数据库表,包括数据库的增删改查以及表的增删改...
使用 `CREATE DATABASE` 语句来创建数据库:CREATE DATABASE example_db;在 DataGrip 中,执行该语句后,新的数据库 `example_db` 将被创建。删除数据库 使用 `DROP DATABASE` 语句来删除数据库:DROP DATABASE example_db;注意:执行此操作会永久删除该数据库及其中的所有表和数据。修改数据库 直接...
修改数据库的校对规则
[[DEFAULT] CHARACTER SET charsetname][[DEFAULT] COLLATE collation_name]2、通常如果创建数据库的时候不指定db的字符集和校对规则,则使用服务器级别默认的校对规则。3、如何修改数据库级别的字符校对规则:a 通过在创建数据库时指定 collationdatabase 字符集。b 通过ALTER DATABASE dbname [[DEFAULT] CH...
SQL Server数据库里面怎么修改数据库的名字?
EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'上述语句最好都在master数据库中执行。另一种方法是先分离数据库,然后在附加时修改数据库名称。需要注意的是,SQL Server并不直接支持修改数据库名称,上述方法是通过一系列操作来实现的。具体来说,首先使用sp_detach_db分离数据库,例如:sp_...
librarydb数据定义使用命令方式
1、创建数据库:使用CREATEDATABASE语句创建一个新的数据库。2、选择数据库:使用USE语句选择要操作的数据库。3、创建表格:使用CREATETABLE语句创建一个新的表格,并指定相关的字段名和数据类型。4、定义字段:定义每个表格的字段名称、数据类型和约束条件等信息,如主键约束、外键约束、唯一约束、非空约束...
如何对db2中的数据库进行数据分析
查看数据库参数时,通过db2 get dbm cfg和db2 get db cfg for btpdbs命令实现。若需修改数据库参数,可执行db2 update db cfg for btpdbs using LOGBUFSZ 20等命令,更改后需执行db2 stop db2 start使更改生效。对于数据表操作,可通过#db2 list tables for schema [user]查看特定模式下的表,使用...
如何更改mysql数据库引擎
第一:修改my.ini,在[mysqld]下加上:default-storage-engine=引擎名称 其中的等号后面是要指定的数据库引擎名称。第二:用sql语句修改已经建成表的引擎:alter table tableName type=InnoDB --type语法在4.X版本下存在 alter table tableName ENGINE=InnoDB --5.X下都改成engine=innodb 举例...
如何修改一个已存在的数据库名称?
首先,需要在目标MySQL实例中创建一个与目标数据库名称相同的空数据库。这一步骤通过执行创建数据库的SQL命令完成,例如`CREATE DATABASE new_db;`,其中`new_db`即为目标数据库的新名称。接下来,需确保目标数据库中所有现有的表结构和数据仍然可以被访问。为此,需要在旧数据库`old_db`执行`SHOW ...
怎么修改db数据库文件?
开发者如果想把Berkeley DB嵌入在私有软件内需要得到Sleepycat公司的许可,若将软件同样遵循GPL发布,则不需许可即可使用。而2.0版本以下的则使用BSD授权,可自由作商业用途。 Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的...