create database dingdan
on PRIMARY--(PRIMARY是主文件組的名稱,不寫也可以,默認就是PRIMARY)
(name=dingdan1_data,
filename='F:\dingdan1_data.mdf',--主文件
size=10,
maxsize=50,
filegrowth=5
),
FILEGROUP a
(name=dingdan2_data,--邏輯名稱
filename='F:\dingdan2_data.ndf',--放在哪裡日誌文件(位置)
size=10,--大小
maxsize=50,--最大值是多少
filegrowth=15%)--自動增長
log on--日誌文件
(name=dingdan_log,
filename='F:\dingdan_log.1df',
size=10,maxsize=20,filegrowth=5)
--修改資料庫
alter database dingdan
add file
(name=dingdan3_data,
filename='F:\dingdan3_data.ndf',
size=10,maxsize=50,filegrowth=5)
TO FILEGROUP a
⑵ 創建資料庫所用的SQL語句是什麼
給你個簡單的例子,創建一個資料庫
if exists (select * from sysdatabases where name='bankDB')
drop database bankDB --查詢是否已存在bankDB資料庫,如果存在則刪除
GO
create database bankDB --創建資料庫
on
(
name='bank_data', --資料庫名稱
filename='e:\SQL\bank_data.mdf', --資料庫位置
size=10mb, --資料庫初始容量
maxsize=100mb, --資料庫最大容量
filegrowth=15% --增長率
)
GO
⑶ sql 語句問題
修改資料庫的時候應該可以添加的是 附屬主數據文件 ,文件的擴展名是 ndf 文件,下面誰 SQL SERVER2000的幫助文檔
Transact-SQL 參考
ALTER DATABASE
在資料庫中添加或刪除文件和文件組。也可用於更改文件和文件組的屬性,例如更改文件的名稱和大小。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 }
參數
database
是要更改的資料庫的名稱。
ADD FILE
指定要添加文件。
TO FILEGROUP
指定要將指定文件添加到的文件組。
filegroup_name
是要添加指定文件的文件組名稱。
ADD LOG FILE
指定要將日誌文件添加到指定的資料庫。
REMOVE FILE
從資料庫系統表中刪除文件描述並刪除物理文件。只有在文件為空時才能刪除。
ADD FILEGROUP
指定要添加文件組。
filegroup_name
是要添加或除去的文件組名稱。
REMOVE FILEGROUP
從資料庫中刪除文件組並刪除該文件組中的所有文件。只有在文件組為空時才能刪除。
MODIFY FILE
指定要更改給定的文件,更改選項包括 FILENAME、SIZE、FILEGROWTH 和 MAXSIZE。一次只能更改這些屬性中的一種。必須在 <filespec> 中指定 NAME,以標識要更改的文件。如果指定了 SIZE,那麼新大小必須比文件當前大小要大。只能為 tempdb 資料庫中的文件指定 FILENAME,而且新名稱只有在 Microsoft SQL Server 重新啟動後才能生效。
若要更改數據文件或日誌文件的邏輯名稱,應在 NAME 選項中指定要改名的邏輯文件名稱,並在 NEWNAME 選項中指定文件的新邏輯名稱。
示例如下:
MODIFY FILE (NAME = logical_file_name, NEWNAME = new_logical_name...)。
可同時運行幾個 ALTER DATABASE database MODIFY FILE 語句以實現多個修改文件操作時性能最優。
MODIFY NAME = new_dbname
重命名資料庫。
MODIFY FILEGROUP filegroup_name { filegroup_property | NAME = new_filegroup_name }
指定要修改的文件組和所需的改動。
如果指定 filegroup_name 和 NAME = new_filegroup_name,則將此文件組的名稱改為 new_filegroup_name。
如果指定 filegroup_name 和 filegroup_property,則表示給定文件組屬性將應用於此文件組。filegroup_property 的值有:
READONLY
指定文件組為只讀。不允許更新其中的對象。主文件組不能設置為只讀。只有具有排它資料庫訪問許可權的用戶才能將文件組標記為只讀。
READWRITE
逆轉 READONLY 屬性。允許更新文件組中的對象。只有具有排它資料庫訪問許可權的用戶才能將文件組標記為讀/寫。
DEFAULT
將文件組指定為默認資料庫文件組。只能有一個資料庫文件組是默認的。CREATE DATABASE 語句將主文件組設置為初始的默認文件組。如果在 CREATE TABLE、ALTER TABLE 或者 CREATE INDEX 語句中沒有指定文件組,則新表及索引將在默認文件組—中創建。
WITH <termination>
指定當資料庫從一種狀態轉換到另一種狀態時,何時回滾未完成的事務。只能指定一條 termination 子句,而且該子句應跟在 SET 子句後面。
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
設定是在指定秒數之後回滾還是立即回滾。如果省略了 termination 子句,那麼將允許事務自主提交或回滾。
NO_WAIT
指定如果請求的資料庫語句或選項更改只有等待事務自主提交或回滾才能立即完成,該請求將失敗。
COLLATE < collation_name >
指定資料庫的排序規則。排序規則名稱既可以是 Windows 排序規則名稱,也可以是 SQL 排序規則名稱。如果沒有指定排序規則,則將 SQL Server 實例的默認排序規則指派為資料庫的排序規則。
有關 Windows 和 SQL 排序規則名稱的更多信息,請參見 COLLATE。
<filespec>
控制文件屬性。
NAME
指定文件的邏輯名稱。
logical_file_name
是在 Microsoft SQL Server 中引用文件時所用的名稱。該名稱在資料庫中必須唯一,並應遵循標識符規則。該名稱可以是字元或 Unicode 常量、常規標識符或定界標識符。有關更多信息,請參見使用標識符。
FILENAME
指定操作系統中的文件名。當和 MODIFY FILE一起使用時,只能對 tempdb 資料庫中的文件指定 FILENAME。新 tempdb 文件名只有在 SQL Server 停止並重新啟動後才能生效。
'os_file_name'
由操作系統使用的文件的路徑和文件名。該文件必須駐留在安裝 SQL Server 的伺服器上。數據文件和日誌文件不應置於壓縮的文件系統中。
如果文件位於原始分區上,那麼 os_file_name 必須僅指定該原始分區的驅動器字母。每個原始分區上只能存放一個文件。原始分區上的文件不會自動增長;因此,os_file_name 指定原始分區時,不需要指定 MAXSIZE 和 FILEGROWTH 參數。
SIZE
指定文件大小。
size
是文件的大小。後綴 KB、MB、GB 和 TB 可用於指定千位元組、兆位元組、千兆位元組或兆兆位元組。默認值為 MB。指定一個整數,不要包含小數位。size 的最小值是 512 KB,如果 size 未指定,默認值是 1 MB。當隨 ADD FILE 一起指定時,size 是文件的初始大小。當隨 MODIFY FILE 一起指定時,size 是文件的新大小,而且必須大於文件的當前大小。
MAXSIZE
指定最大的文件大小。
max_size
是最大的文件大小。後綴 KB、MB、GB 和 TB 可用於指定千位元組、兆位元組、千兆位元組或兆兆位元組。默認值為 MB。指定一個整數,不要包含小數位。如果沒有指定 max_size,那麼文件大小將一直增長,直至磁碟填滿為止。當磁碟即將填滿時,Microsoft Windows NT® 應用程序日誌將向管理員發出警告。
UNLIMITED
指定文件大小可一直增加直至磁碟已滿。
FILEGROWTH
指定文件增長的增量。
growth_increment
每次需要新的空間時為文件添加的空間大小。值為 0 表示不增長。該值可按 MB、KB 或 % 的形式指定。指定一個整數,不要包含小數位。如果指定了 %,那麼文件增量為文件發生增長時文件大小的指定百分比。如果未在數量後面指定 MB、KB 或 %,則默認值為 MB。如果 FILEGROWTH 未指定,默認值為 10%,且最小值為 64 KB。指定的大小舍入為最接近的 64 KB 的倍數。
<state_option>
控制用戶對資料庫的訪問,資料庫是否處於聯機狀態,以及是否允許寫操作。
SINGLE_USER | RESTRICTED_USER | MULTI_USER
控制哪些用戶可以訪問資料庫。如果指定為 SINGLE_USER,那麼同一時間只能有一個用戶訪問資料庫。如果指定為 RESTRICTED_USER,那麼只有 db_owner、dbcreator 或 sysadmin 角色的成員可以使用資料庫。MULTI_USER 使資料庫返回到正常操作狀態。
OFFLINE | ONLINE
控制資料庫是聯機還是離線。
READ_ONLY | READ_WRITE
指定資料庫是否處於只讀模式。在只讀模式下,用戶可以從資料庫中讀取數據,但不能修改數據。當指定 READ_ONLY 時,資料庫不能處於使用狀態。master 資料庫是一個例外,當該資料庫設置為 READ_ONLY 時,只有系統管理員才能使用該資料庫。READ_WRITE 使資料庫返回到讀寫操作狀態。
<cursor_option>
控制游標選項。
CURSOR_CLOSE_ON_COMMIT ON | OFF
如果指定為 ON,在事務提交或回滾時所有打開的游標都將關閉。如果指定為 OFF,那麼在事務提交時打開的游標仍保持打開;而回滾事務時關閉所有除定義為 INSENSITIVE 或 STATIC 之外的游標。
CURSOR_DEFAULTLOCAL | GLOBAL
控制游標作用域默認為 LOCAL 還是 GLOBAL。
<auto_option>
控制自動選項。
AUTO_CLOSE ON | OFF
如果指定為 ON,那麼最後一個用戶退出後,資料庫將干凈地關閉,其佔用的資源將釋放。如果指定為 OFF,那麼最後一個用戶退出後資料庫仍保持打開。
AUTO_CREATE_STATISTICS ON | OFF
如果指定為 ON,那麼所有優化查詢需要但缺少的統計信息都會在查詢優化時自動生成。
AUTO_SHRINK ON | OFF
如果指定為 ON,資料庫文件將定期自動收縮。
AUTO_UPDATE_STATISTICS ON | OFF
如果指定為 ON,所有查詢優化所需的過時的統計信息在都將在優化時自動重建。如果指定為 OFF,統計信息必須手工更新。
<sql_option>
控制 ANSI 遵從性選項。
ANSI_NULL_DEFAULT ON | OFF
如果指定為 ON,CREATE TABLE 在確定列是否允許空值時遵從 SQL-92 規則。
ANSI_NULLS ON | OFF
如果指定為 ON,所有與空值的比較運算結果為 UNKNOWN。如果指定為 OFF,非 UNICODE 值與空值的比較運算在兩者均為 NULL 時結果為 TRUE。
ANSI_PADDING ON | OFF
如果指定為 ON,在比較或插入前,字元串將填充為同一長度。如果指定為 OFF,字元串將不填充。
ANSI_WARNINGS ON | OFF
如果指定為 ON,當出現諸如被零除的情況時將產生錯誤或警告。
ARITHABORT ON | OFF
如果指定為 ON,在執行查詢時如果發生溢出或被零除,該查詢將終止。
CONCAT_NULL_YIELDS_NULL ON | OFF
如果指定為 ON,當串聯操作的兩個操作數中任意一個為 NULL 時,結果也為 NULL。如果指定為 OFF,空值將按空字元串對待。默認設置為 OFF。
QUOTED_IDENTIFIER ON | OFF
如果指定為 ON,雙引號將可用於包含定界標識符。
NUMERIC_ROUNDABORT ON | OFF
如果指定為 ON,當表達式中出現精度損失時將產生錯誤。
RECURSIVE_TRIGGERS ON | OFF
如果指定為 ON,將允許遞歸激發觸發器。RECURSIVE_TRIGGERS OFF(默認值)只禁止直接遞歸。若要也禁用間接遞歸,請使用 sp_configure 將 nested triggers 伺服器選項設置為 0。
<recovery_options>
控制資料庫恢復選項。
RECOVERY FULL | BULK_LOGGED | SIMPLE
如果指定為 FULL,系統將對介質錯誤提供完全保護。如果數據文件損壞,介質恢復可以還原所有已提交的事務。
如果指定為 BULK_LOGGED,將在介質錯誤保護程度與某些大規模或大容量操作的最優性能及日誌存儲空間最少佔用量之間進行權衡。這些操作包括 SELECT INTO、大容量裝載操作(bcp 和 BULK INSERT)、CREATE INDEX 以及文本和圖象操作(WRITETEXT 和 UPDATETEXT)。
在大容量日誌記錄恢復模型下,對整個類只做最少的日誌記錄,並且無法逐個操作地控制日誌記錄行為。
如果指定為 SIMPLE,系統將提供佔用日誌空間最小的備份策略。伺服器故障恢復不再需要的日誌空間可被自動重用。
重要 簡單恢復模型比其它兩種模型更容易管理,但數據文件損壞時造成數據丟失的可能性更大。最近的資料庫備份或差異資料庫備份之後的更改都將丟失,必須手工重新輸入。
默認恢復模型由 model 資料庫的恢復模型確定。若要更改新資料庫的默認值,請用 ALTER DATABASE 設置 model 資料庫的恢復選項。
TORN_PAGE_DETECTION ON | OFF
如果指定為 ON,將可以檢測到未完成的頁。默認設置為 ON。
注釋
若要刪除資料庫,請使用 DROP DATABASE 語句。若要更改資料庫名稱,請使用 sp_renamedb。有關減小資料庫大小的更多信息,請參見 DBCC SHRINKDATABASE。
在對資料庫應用不同的或新的排序規則時,應確保符合以下條件:
您是當前資料庫的唯一用戶。
沒有依賴資料庫排序規則的架構綁定對象。
如果資料庫中存在以下依賴資料庫排序規則的對象,則 ALTER DATABASE database COLLATE 語句將失敗。SQL Server 將針對每一個阻塞 ALTER 操作的對象返回一個錯誤信息:
通過 SCHEMABINDING 創建的用戶定義函數和視圖。
計算列。
CHECK 約束。
表值函數返回包含字元列的表,這些列繼承了默認的資料庫排序規則。
改變資料庫的排序規則不會在任何數據對象的系統名稱中產生重復名稱。
如果改變排序規則後出現重復的名稱,則下列命名空間可能導致改變資料庫排序規則的操作失敗:
對象名(如過程、表、觸發器或視圖)。
架構名(如組、角色或用戶)。
標量類型名(如系統和用戶定義類型)。
全文目錄名稱。
對象內的列名或參數名。
表范圍內的索引名。
由新的排序規則產生的重復名稱將導致改變操作失敗,SQL Server 將返回錯誤信息,指出重復名稱所在的命名空間。
當 BACKUP 語句正在執行時,不能添加或刪除文件。
若要在 size 參數中指定兆位元組的分數,應通過乘以數字 1024 將該值轉換為千位元組。例如,應指定 1536 KB 而不是 1.5MB(1.5 x 1024 = 1536)。
許可權
ALTER DATABASE 許可權默認授予 sysadmin 和 dbcreator 固定伺服器角色成員以及 db_owner 固定資料庫角色成員。這些許可權是不可傳遞的。
示例
A. 向資料庫中添加文件
下例創建資料庫,並更改該資料庫以添加一個 5 MB 大小的新數據文件。
USE master
GO
CREATE DATABASE Test1 ON
(
NAME = Test1dat1,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat1.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
GO
ALTER DATABASE Test1
ADD FILE
(
NAME = Test1dat2,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat2.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
GO
B. 向資料庫中添加由兩個文件組成的文件組
下例在示例 A 中所創建的 Test1 資料庫中創建一個文件組,並將兩個 5 MB 的文件添加到該文件組。然後下例將 Test1FG1 設置為默認文件組。
USE master
GO
ALTER DATABASE Test1
ADD FILEGROUP Test1FG1
GO
ALTER DATABASE Test1
ADD FILE
( NAME = test1dat3,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat3.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = test1dat4,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat4.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
TO FILEGROUP Test1FG1
ALTER DATABASE Test1
MODIFY FILEGROUP Test1FG1 DEFAULT
GO
C. 向資料庫中添加兩個日誌文件
下例向資料庫中添加兩個 5 MB 大小的日誌文件。
USE master
GO
ALTER DATABASE Test1
ADD LOG FILE
( NAME = test1log2,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test2log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = test1log3,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test3log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
GO
D. 從資料庫中刪除文件
下例將示例 B 中添加到資料庫 Test1 中的一個文件刪除。
USE master
GO
ALTER DATABASE Test1
REMOVE FILE test1dat4
GO
E. 更改文件
下例將示例 B 中添加到資料庫 Test1 中的一個文件增加大小。
USE master
GO
ALTER DATABASE Test1
MODIFY FILE
(NAME = test1dat3,
SIZE = 20MB)
GO
F. 將主文件組設置為默認文件組
假定原來另一個文件組設置為默認文件組,下例將主文件組設置為默認文件組。
USE master
GO
ALTER DATABASE MyDatabase
MODIFY FILEGROUP [PRIMARY] DEFAULT
GO
請參見
CREATE DATABASE
DROP DATABASE
sp_helpdb
sp_helpfile
sp_helpfilegroup
sp_renamedb
sp_spaceused
使用恢復模型
&;1988-2000 Microsoft Corporation。保留所有權利。