Ⅰ 如何創建sql SERVER2005事務日誌並且能每天自動建立。
方法1:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行
dbcc
shrinkdatabase
(database_name,[,target_percent])--database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc
shrinkfile(file_id,[,target_size])
--file_id是要收縮的文件的標識
(id)
號,若要獲得文件
id,請使用
file_id
函數或在當前資料庫中搜索
sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認文件大小
兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思看幫助。
方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在query
analyzer中執行如下的語句:
exec
sp_detach_db
yourdbname,true
--卸除這個db在mssql中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在query
analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourdbname,'d:\mssql7\data\yourdbname_data.mdf'
--以單文件的方式注冊該db,如果成功則mssql將自動為這個db生成一個500k的日誌文件。
以上方法在清除log日誌中均有效。
但,能否讓sql
server
不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql
server每天都會產生4,500m的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?
我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql
server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
select
*
into
test_2
from
b_bgxx
共45000條記錄,產生十幾m
log,如果
delete
from
test_2
產生80多m
log
,這明顯存在問題。
雖然可以換成:
truncate
table
test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。
Ⅱ 使用T-SQL創建人事管理資料庫
CREATE DATABASE [HrSys]
ON PRIMARY
( NAME = N'HrSys', FILENAME = N'D:\人事管理數據\HrSys.mdf' , SIZE = 3072KB , FILEGROWTH = 10%)
LOG ON
( NAME = N'HrSys_log', FILENAME = N'E:\人事管理日誌\HrSys_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
Drop Database [HrSys]
Ⅲ 如何用SQL語言在已有資料庫日誌文件中再添加一個資料庫日誌文件
use masteralter database 你的資料庫名(建立資料庫時的名稱)add log file
(
name=tt_log2,filename='F:\tt_log2.ldf',
size=2MB,
maxsize=2MB,
filegrowth=10%
)
go這樣就行了
Ⅳ 1)使用T-SQL語句管理資料庫 (1) 使用CREATE DATABASE創建studb資料庫,然後通過系統存儲過程sp_helpdb查
if exists (select 1 from sysobject where name = 'sp_helpdb') is not null --判斷是否存在同名的存儲過程,如果有就刪除
drop procere sp_helpdb
go
create procere sp_helpdb --創建名為sp_helpdb存儲過程
as
create database studb --在存儲過程里創建資料庫
on primary
(
--創建主文件
name = studb_mdf,
filename = '存儲路徑\studba_mdf,mdf',
size = 3mb,
maxsize = 100mb,
filegrowth = 1mb
)
on log
(
--創建日誌文件
name = studb_ldf,
filename = '存儲路徑\studba_ldf,ldf',
size = 3mb,
maxsize = 200mb,
filegrowth = 1mb
)
go
Ⅳ SQL作業 使用T-SQL語句創建下面資料庫:
樓上回答很好,我只是加了注釋,希望能幫到你
--判斷資料庫文件是否存在
if exists(select * from sysdatabases where name='ssh')
drop database ssh
--建立數據
create database 09網路1
on primary--文件所在的文件組
(
NAME='09網路1_data', --資料庫主文件的名稱
FILENAME='C:\09網路1_data.mdf', --資料庫文件的存放位置
size=55mb, --資料庫的初始化大小
maxsize=100mb, --資料庫的最大的存儲大小
FILEGROWTH=10% --增長率
)
--建立日誌文件
LOG ON
(
NAME='09網路1_log', --資料庫日誌文件的名稱
FILENAME='C:\09網路1_log.ldf', --資料庫日誌文件的存放位置
size=12mb, --資料庫日誌文件的初始化大小
maxsize=25mb, --資料庫日誌文件的最大的存儲大小
FILEGROWTH=3 --增長率
)
Ⅵ Sql語句創建數據文件,和日誌文件問題
你看你,怎麼這么不小心啊,首先你的語法是沒有錯誤的,但是你看你的日誌文件名字怎麼和主資料庫文件名一樣啊,把你的日誌文件名改成hufang_log就行了啊!!!呵呵!!
Log on
(
/*--日誌文件具體描述同上--*/
name='hufang_log',
Filename='F:\project\hufang_log.ldf',
Size=2MB,
MaxSize=10MB,
FIleGrowth=15%
)
go
Ⅶ 1、用T-SQL語句創建一個如下要求的資料庫。
create database XSCJ
on primary -- 默認就屬於primary文件組,可省略
(
/*--數據文件的具體描述--*/
name='xscj_data', -- 主數據文件的邏輯名稱
filename='D:\sqlwork\txscj_data.mdf'-- 主數據文件的物理名稱
size=5mb, --主數據文件的初始大小
maxsize=50mb, -- 主數據文件增長的最大值
filegrowth=10%--主數據文件的增長率
)
log on
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='xscj_log',
filename='D:\sqlwork\xscj_log.ldf',
size=3mb,
maxsize=30mb,
filegrowth=10%
)
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'xscj_data2')
DROP DATABASE [xscj_data2]
GO
Ⅷ 用T-SQL語句完成創建與管理資料庫操作:
用T-SQL語句完成創建與管理資料庫操作方法:
createdatabase網路1on
primary
(
name=網路1_data,
filename='c:網路1_data.mdf',
size=55mb,
maxsize=100mb,
filegrowth=10%
)
logon
(
name=網路1_log,
filename='c:網路1_log.ldf',
size=12mb,
maxsize=25mb,
filegrowth=3mb
)