发布网友 发布时间:2022-04-25 15:13
共1个回答
热心网友 时间:2022-05-01 14:09
CREATEDATABASEdatabase_name[CONTAINMENT={NONE|PARTIAL}][ON[PRIMARY][,n][,[,n]][LOGON[,n]]][COLLATEcollation_name][WITH[,n]][;]::={FILESTREAM([,n])|DEFAULT_FULLTEXT_LANGUAGE={lcid|language_name|language_alias}|DEFAULT_LANGUAGE={lcid|language_name|language_alias}|NESTED_TRIGGERS={OFF|ON}|TRANSFORM_NOISE_WORDS={OFF|ON}|TWO_DIGIT_YEAR_CUTOFF=|DB_CHAINING{OFF|ON}|TRUSTWORTHY{OFF|ON}}::={NON_TRANSACTED_ACCESS={OFF|READ_ONLY|FULL}|DIRECTORY_NAME='directory_name'}ToattachadatabaseCREATEDATABASEdatabase_nameON[,n]FOR{{ATTACH[WITH[,n]]}|ATTACH_REBUILD_LOG}[;]::={(NAME=logical_file_name,FILENAME={'os_file_name'|'filestream_path'}[,SIZE=size[KB|MB|GB|TB]][,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}][,FILEGROWTH=growth_increment[KB|MB|GB|TB|%]])}::={FILEGROUPfilegroup_name[CONTAINSFILESTREAM][DEFAULT][,n]}::={|RESTRICTED_USER|FILESTREAM(DIRECTORY_NAME={'directory_name'|NULL})}::={ENABLE_BROKER|NEW_BROKER|ERROR_BROKER_CONVERSATIONS}CreateadatabasesnapshotCREATEDATABASEdatabase_snapshot_nameON(NAME=logical_file_name,FILENAME='os_file_name')[,n]ASSNAPSHOTOFsource_database_name[;]database_name新数据库的名称。数据库名称在SQLServer的实例中必须唯一,并且必须符合标识符规则。除非没有为日志文件指定逻辑名称,否则database_name最多可以包含128个字符。如果未指定逻辑日志文件名称,则SQLServer将通过向database_name追加后缀来为日志生成logical_file_name和os_file_name。这会将database_name*为123个字符,从而使生成的逻辑文件名称不超过128个字符。如果未指定数据文件的名称,则SQLServer使用database_name作为logical_file_name和os_file_name。默认路径从注册表中获得。可以使用ManagementStudio中的“服务器属性”(“数据库设置”页)更改默认路径。更改默认路径要求重新启动SQLServer。CONTAINMENT指定数据库的包含状态。NONE=非包含数据库。PARTIAL=部分包含的数据库。ON指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。当后面是以逗号分隔的、用以定义主文件组的数据文件的项列表时,需要使用ON。主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的项列表(可选)。PRIMARY指定关联的列表定义主文件。在主文件组的项中指定的第一个文件将成为主文件。一个数据库只能有一个主文件。有关详细信息,请参阅数据库文件和文件组。如果没有指定PRIMARY,那么CREATEDATABASE语句中列出的第一个文件将成为主文件。LOGON指定显式定义用来存储数据库日志的磁盘文件(日志文件)。LOGON后跟以逗号分隔的用以定义日志文件的项列表。如果没有指定LOGON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的25%或512KB,取两者之中的较大者。此文件放置于默认的日志文件位置。有关此位置的信息,请参阅查看或更改数据文件和日志文件的默认位置(SQLServerManagementStudio)。不能对数据库快照指定LOGON。COLLATEcollation_name指定数据库的默认排序规则。排序规则名称既可以是Windows排序规则名称,也可以是SQL排序规则名称。如果没有指定排序规则,则将SQLServer实例的默认排序规则分配为数据库的排序规则。不能对数据库快照指定排序规则名称。不能使用FORATTACH或FORATTACH_REBUILD_LOG子句指定排序规则名称。有关如何更改附加数据库的排序规则的信息,请访问此Microsoft网站。有关Windows和SQL排序规则名称的详细信息,请参阅COLLATE(Transact-SQL)。注意包含数据库的排序方式不同于非包含数据库。有关详细信息,请参阅包含数据库的排序规则。WITH仅在将CONTAINMENT设置为PARTIAL之后,才允许使用以下选项。如果将CONTAINMENT设置为NONE,将发生错误。NON_TRANSACTED_ACCESS={OFF|READ_ONLY|FULL}指定对数据库的非事务性FILESTREAM访问的级别。USEmaster;GOCREATEDATABASEmytest;GO--VerifythedatabasefilesandsizesSELECTname,size,size*1.0/128AS[SizeinMBs]FROMsys.master_filesWHEREname=N'mytest';GOUSEmaster;GOCREATEDATABASEmytest;GO--VerifythedatabasefilesandsizesSELECTname,size,size*1.0/128AS[SizeinMBs]FROMsys.master_filesWHEREname=N'mytest';GOB.创建指定数据和事务日志文件的数据库下面的示例将创建数据库Sales。因为没有使用关键字PRIMARY,第一个文件(Sales_dat)将成为主文件。因为在Sales_dat文件的SIZE参数中没有指定MB或KB,将使用MB并按MB分配。Sales_log文件以MB为单位进行分配,因为SIZE参数中显式声明了MB后缀。USEmaster;GOCREATEDATABASESalesON(NAME=Sales_dat,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=Sales_log,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB);GOUSEmaster;GOCREATEDATABASESalesON(NAME=Sales_dat,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=Sales_log,FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB);GOC.通过指定多个数据和事务日志文件创建数据库以下示例创建数据库Archive,该数据库具有三个100-MB数据文件和两个100-MB事务日志文件。主文件是列表中的第一个文件,并使用PRIMARY关键字显式指定。事务日志文件在LOGON关键字后指定。请注意用于FILENAME选项中各文件的扩展名:.mdf用于主数据文件,.ndf用于辅助数据文件,.ldf用于事务日志文件。此示例将数据库放置于D:驱动器上,而非master数据库中。USEmaster;GOCREATEDATABASEArchiveONPRIMARY(NAME=Arch1,FILENAME='D:\SalesData\archdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='D:\SalesData\archdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='D:\SalesData\archdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='D:\SalesData\archlog1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='D:\SalesData\archlog2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20);GOUSEmaster;GOCREATEDATABASEArchiveONPRIMARY(NAME=Arch1,FILENAME='D:\SalesData\archdat1.mdf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch2,FILENAME='D:\SalesData\archdat2.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Arch3,FILENAME='D:\SalesData\archdat3.ndf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20)LOGON(NAME=Archlog1,FILENAME='D:\SalesData\archlog1.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20),(NAME=Archlog2,FILENAME='D:\SalesData\archlog2.ldf',SIZE=100MB,MAXSIZE=200,FILEGROWTH=20);GO