--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee

joomy 發表在 痞客邦 留言(0) 人氣()

备份SQL Server
备份的术语
系统故障
SQL Server记录文件
备份方法
执行备份
排程备份
改善备份
本章总结
将数据库备份是 DBA 最重要的任务之一。备份和仔细的还原计划可在系统失效时将数据还原。DBA 的责任是保持系统的执行状态,并在失效时尽快还原所有的服务。系统停止运作会造成许多不便,有时更要付出昂贵的代价,因此在系统停止运作时得很快的取得取得数据库备份。有些技术会对系统失效的还原有帮助,如丛集和容错磁盘子系统,但是还是比不上一个好的计划和可靠的备份。
因为备份、还原和复原数据库的主题十分重要,因此我们会分成两章的来讨论。本章中将学习 SQL Server 交易记录文件,以及备份数据库的几种方法。在 第 33 章 中,将学习如何还原数据库、SQL Server 如何回复、以及如何建立回复计划。
备份的术语
 

joomy 發表在 痞客邦 留言(0) 人氣()

SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:

joomy 發表在 痞客邦 留言(0) 人氣()

  将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行"。
  --或者在master中创建存储过程后,执行语句设置为自动启动
  use master
  exec sp_procoption '存储过程名','startup','on'
---------------------------------------------------------------

joomy 發表在 痞客邦 留言(0) 人氣()


如果只有ufdata.mdf(数据库文件),ufdata.ldf(日志文件)可以运用系统数据库(master)里的系统存储过程 sp_attach_db 来恢复,具体操作过程:在Query Analyzer 或者 Dos 里的osql 命令来实现,exec sp_attach_db '数据库名','参数1(第一个物理文件的目录及文件名)','参数1(第二个物理文件的目录及文件名)' 如 exec sp_attach_db 'ufsystem','D:\wf821\admin\ufsystem.ldf','D:\wf821\admin\ufsystem.mdf'
注:如果是该数据库为灰色,则需要先断开该物理文件与数据库的连接, 使用sp_detach_db 语法: exec sp_detach_db '数据库名'
如果是只有mdf 文件(数据库文件),则需要另外一个系统存储过程sp_attach_single_file_db
具体语法为 exec ap_attach_single_file_db 'ufsystem','D:\wf821\admin\ufsystem.mdf'
stop SQL Server service ,replace physname by new files and start SQL server service. 其实这一种方法也可以应用于当数据库出现损坏的情况,利用SQL Server 在启动时主动检测数据库是否完好的功能。

joomy 發表在 痞客邦 留言(0) 人氣()

一、了解DBCC
 DBCC(database consistenecy checker,简称dbcc) 是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性。
 数据库控制台命令语句可分为以下类别:
 维护: 对数据库、索引或文件组进行维护的任务。 
 杂项: 杂项任务,如启用跟踪标志或从内存中删除 DLL。
 信息: 收集并显示各种类型信息的任务。
 验证: 对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作

joomy 發表在 痞客邦 留言(0) 人氣()

DUMP TRANSACTION [数据库名] WITH NO_LOG 
BACKUP LOG [数据库名] WITH NO_LOG 
DBCC SHRINKDATABASE([数据库名])
如何避免 SQL Server 資料庫的交易記錄檔超出預期大小

joomy 發表在 痞客邦 留言(0) 人氣()

◆資料庫啟用與卸載(mysqladmin 公用程式的使用)
mysqladmin 公用程式可用來維護 MySQL 比較一般性的工作(新增、刪除資料庫、設定使用者密碼及停止 MySQL 等等),詳細的說明可以使用 mysqladmin --help 來查看。(以本文的安裝為例 mysqladmin  位於 /usr/local/mysql/bin/mysqladmin)。新增資料庫 dbtest
# mysqladmin -u root -p create dbtest
Enter password:
Database "dbtest" created.
刪除資料庫
# mysqladmin -u root -p drop dbtest
Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'dbtest' database [y/N]
y
Database "dbtest" dropped
設定使用者密碼(將 maa 的密碼改為  7654321,mysqladmin 會先詢問 maa 的原密碼)
# mysqladmin -u maa -p password 7654321
Enter password:

joomy 發表在 痞客邦 留言(0) 人氣()

sysobjects:針對資料庫內所建立的每個物件,如條件約束、預設值、記錄、規則和預存程序,各包含一個資料列。
                type : 物件類型。它可以是下列值之一:            
C = CHECK 條件約束
D = 預設值或 DEFAULT 條件約束
F = FOREIGN KEY 條件約束
FN = 純量函數
IF = 內嵌資料表函數
K = PRIMARY KEY 或 UNIQUE 條件約束
L = 記錄
P = 預存程序
R = 規則
RF = 複寫篩選預存程序
S = 系統資料表
TF = 資料表函數
TR = 觸發程序
U = 使用者資料表
V = 檢視
X = 擴充預存程序
所以…
例:要找出所有的Trigger
       select name, type
       from sysobjects
       where type = 'TR'

joomy 發表在 痞客邦 留言(0) 人氣()

在資料庫上按滑鼠右鍵--> 內容 ...
在[一般]頁籤的最下方,即可看到此資料庫的 定序名稱...
定序名稱 可分解為:
使用語言字串
[_指定大寫]
[_是否指定大小寫]
[_是否區分腔調字]
[_二進位排序]

[_指定大寫] ==> 若加上 _Pref 即表示指定大寫,未加則不指定。
[_是否指定大小寫] ==> _CI 指定不分大小寫,_CS 指定區分大小寫。
[_是否區分腔調字] ==> _AI 指定不分腔調字,_AS 指定區分腔調字。
[_二進位排序] ==> 若加上 _BIN 即表示以二進位排序,未加則不指定。

joomy 發表在 痞客邦 留言(0) 人氣()

select NChar(UniCode(N'评'))
-- 评
select NChar(UniCode('评'))
-- ?
declare @sTmp nvarchar(20)
set @sTmp = N'评'
select NChar(UniCode(@sTmp))
-- 评
set @sTmp = '评'
select NChar(UniCode(@sTmp))
-- ?

joomy 發表在 痞客邦 留言(0) 人氣()

在 MS SQL 中,空白字元在【某些的字串函數或比較式】執行結果會與預期的不一樣,例如
Sample 1:
    IF ( '  ' = ''  )  -- 一個是兩個空白,一個是空字串
        print '相等'
    else
        print '不相等';
    執行結果是]  ==>  相等
Sample 2:
    print Len('  ')   --  結果等於 0
Sample 3:
    print Len('123  ')   --  結果等於 3  Len 函數會自動將字尾的空白去掉
Sample 4:
    print Len('  123')   --  結果等於 5
Q: 那如果要真的求出字串 '123  ' ,長度為 5 ,指令該用什麼??  
==> A: 後面有空白的字元長度,要求出實際長度,不可以使用 Len ,要使用 DataLength  ==> 這是求出【位元組】的長度
※特別注意:
DataLength 是求出位元組,所以

  • 當碰上中文字時,每一個字的長度皆為 2
  • 當型態為:nvarchar、nchar 時,不管英文、符號,長度皆為 2
    當型態為:varchar、char  時,英文、符號的長度皆為 1

範例如下
Declare @sWideString nvarchar(20)  -- Unicode
Declare @sString  varchar(20)   -- 一般字元
Set @sWideString = '我是中文字加 ABC   '
Set @sString = '我是中文字加 ABC   '
print Len(@sWideString)  -- 長度 10  (因為 Len 指令會將尾端的空白去掉)
print Len(@sString)      -- 長度 10  (因為 Len 指令會將尾端的空白去掉)
print DataLength(@sWideString)  -- 長度 26
print DataLength(@sString)      -- 長度 19

joomy 發表在 痞客邦 留言(0) 人氣()

1 2
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。