tsqlsql
1. T-sql到底是什麼
T-SQL
T-SQL是標准 SQL 程式設計語言的增強版,它是用來讓應用程式與 SQL Server 溝通的主要語言。T-SQL 提供標准 SQL的DDL 和 DML 功能,加上延伸的函數、系統預存程序以及程式設計結構(例如 IF 和 WHILE)讓程式設計更有彈性。T-SQL 的功能隨著新版的 SQL Server 而持續成長,讓我們來看一下 T-SQL 最新增加的特色。
介紹 T-SQL 的新特色
在 Microsoft SQL Server 7.0 中 T-SQL 有著為數不少的新增功能,包括新的預存程序、系統資料表、函數、資料型別、陳述式以及現存陳述式中的選項。這些都被保留在 SQL Server 2000 中,因此我們在這里要先回顧 (特別是在您還不很熟悉 SQL Server 7.0 中 T-SQL 的功能,這個溫習就很重要了)。因為有太多的新功能需要討論,在此我們僅為每個類別舉少數例子來加以介紹。
相關資訊
要找尋這些功能的完整清單,可以參考 SQL Server《線上叢書》中 「Transact-SQL新增與加強的功能」 主題。
系統預存程序
系統預存程序是 SQL Server 提供來執行管理與其他工作,包括了系統資料表更新以及從系統資料表中檢索資料等。系統預存程序是和 SQL Server 一起安裝,名稱以 sp_ (系統預存程序) 或 xp_ (延伸的預存程序)開頭。這些預存程序儲存在 master 資料庫中,許可權歸系統管理者所有。不過,許多程序可以從使用者自訂的資料庫執行,用來在特定資料庫中從系統資料表檢索資訊。當您執行一個系統預存程序,它是在目前資料庫的系統資料表中展開作業。
相關資訊
關於這類型程序的更多相關資訊,請參考《線上叢書》中 「延伸預存程序」 主題。
在 SQL Server 7 中新增了許多系統預存程序,如今在 SQL Server 2000 中同樣可以利用。表13-1列出了一些可能對您有所幫助的系統預存程序。
表13-1 Proceres Introced....
系統預存程序 描述
sp_cycle_errorlog 關閉目前的錯誤日誌檔案,重新命名為errorlog.1(以及,如果需要的話,將舊的errorlog.1重新命名為errorlog.2,依此類推),以及開始一個新的錯誤日誌檔案。
sp_helpfile 傳回與目前資料庫相關之檔案的名稱與屬性。
sp_helpfilegroup 傳回與目前資料庫相關之檔案群組的名稱與屬性。
sp_helprole 傳回與目前資料庫相關中角色的資訊。
sp_help_alert 報告伺服器定義的警示資訊。
sp_start_job 指示SQL Server代理程式開始執行一個工作。
並不是只有這些預存程序提供立即的資訊,不過它們在使用您的使用者資料庫時會相當有用。例如,當執行 T-SQL 指令碼並將輸出結果儲存到一個檔案時,提供使用者資訊的程序就會相當有幫助。您可以將 sp_helpfile、sp_helpfilegroup以及 sp_helpdb 的執行結果儲存在特定的資料庫中,畢竟當您需要重建資料庫時有必要了解檔案、檔案群組、資料庫選項在起初建立時的原始設定。在 SQL Server 7.0 新增並保留 SQL Server 2000 中的系統預存程序清單,可以在《線上叢書》「Transact-SQL新增與加強的功能」這個主題里找到。
系統資料表
系統資料表用來儲存 SQL Server 中所有資料庫的設定資訊,以及物件、使用者和使用者存取許可權的定義。每個使用者資料庫有各自的系統資料表,其中保存資料庫的資訊。只有在 master 資料庫的系統資料表才握有伺服器層級的設定資訊。您應該利用系統預存程序來存取系統資料表而不是直接存取系統資料表。關於新的 SQL Server 7.0 新增的系統資料表清單可在《線上叢書》里的「Transact-SQL新增與加強的功能」這個主題里找到。底下列出一些有趣的新系統資料表:
backupfile這個資料表存放在 msdb 資料庫中。它記錄了所有記錄檔備份或資料庫檔案備份的相關資訊。這些資訊包括檔案識別碼、檔案歸屬的檔案群組,以及檔案存在的實體磁碟或資料分割的名稱。
restorehistory這個資料表存放在 msdb 資料庫中。它包含對應於各還原作業相關資訊的資料列,不論是檔案的還原或是資料庫的還原。這些資訊包括還原的日期與時間、目的資料庫、資料回復的時間點以及還原的類型。
sysfiles此資料表為一虛擬資料表,亦即無法直接更新或修改。它包含了每個資料庫檔案的相關資訊,諸如實體裝置及邏輯的檔案名稱、檔案大小及最大檔案大小以及資料庫增長大小(如果資料庫有所增長的話)。
注意
請永遠使用系統預存程序來存取系統資料表,系統預存程序提供一層隔離以確保您不會更動到不可更改的資料。如果您以手動方式存取系統資料表,可能會有變更重要系統資訊的風險。
函數
SQL Server 內建的函數提供了一個快速、簡單的方法來完成某些特定的工作。SQL Server 7.0 新增了幾個有用的函數,並且也包含在 SQL Server 2000 中。了解哪些函數是可用的,SQL Server 應用程式的設計工作可以變得稍為簡單。在《線上叢書》中的「Transact-SQL 新增與加強的功能」這個主題可以找到新增函數的完整清單。此處僅介紹一些對您可能很有幫助的函數:
NEWID 建立一個 uniqueidentifier 資料型別的 全域唯一識別項 (GUID)。您需要使用這個函數將值分派給該資料型別的資料行,使用方式為 NEWID() 。(此函數不需引數)
YEAR 傳回指定日期年份部分的完整整數。使用方式為 YEAR(date) 。例如:以下陳述式 SELECT YEAR('07/11/01') 將會傳回值 2001。
MONTH 傳回指定日期月份部分的整數。使用方式為 MONTH(date) 。例如:以下陳述式 SELECT MONTH('07/11/01') 將會傳回值7。
DAY 傳回指定日期日期部分的整數。使用方式為 DAY(date) 。例如:以下陳述式 SELECT DAY('07/11/01') 將會傳回值 11。
FILE_NAME 傳回檔案識別碼(ID)的邏輯檔案名稱。使用方式為 FILE_NAME (file_id_number)。例如:陳述式 SELECT FILE_NAME(4) 檔案識別碼為4的檔案邏輯名稱。如果資料庫中找不到有此識別碼的檔案,則傳回 NULL。
資料型別
在 SQL Server 7 中新增了幾種新的資料型別,一些已經有的資料型別的尺寸也有延伸。此外,SQL Server 2000 新增了三種資料型別,這些資料別多數在第10章 已經討論過。此處僅列出 SQL Server 7 有改變,並且也包含在 SQL Server 2000 中的資料型別:
資料指標變數新增了一個 cursor 資料型別。關於指標的相關訊息,請參考《線上叢書》里「Cursors」這個主題。
新增了三種新的 Unicode 資料型別-nchar、nvarchar 以及 ntext。每一個 Unicode 字元使用兩個位元組,並支援所有國際字元。
新增了一種 uniqueidentifier 資料型別,用於儲存通用唯一識別碼(GUID)。
字元資料和二進位字串的最大長度擴展到8,000位元組。這一長度適用於 char、varchar、binary 以及 varbinary 等型別。
SQL Server 2000 則新增了下列資料型別:
bigint儲存8個位元組長度的整數。
sql_variant允許不同資料型別的值儲存於同一個資料行。此型別的資料行儲存資料本身的值並且加以描述-它的基本型別、小數位數、精確性、最大大小以及定序(collation)。
table運作方式與暫存資料表類似;其宣告包含資料行清單與資料型別。此資料型別可用來定義一個區域變數或是一個使用者自訂函數的傳回值。
陳述式
SQL Server 7.0 包括了許多新的 T-SQL 陳述式和已經存在陳述式的新選項。同樣的,這些也保留在S QL 2000 之中。這些陳述式對應 SQL Server 7.0 的一些新功能。例如,ALTER DATABASE 陳述式包含了下列一些針對檔案與檔案群組的新選項:MODIFY FILE、ADD FILEGROUP、MODIFY FILEGROUP、REMOVE FILE 以及 REMOVE FILEGROUP。特別是檔案群組,新的 DBCC CHECKFILEGROUP 陳述式會檢查檔案群組中所有資料表的分配和結構的完整性。
SQL Server 7.0 與 SQL Server 2000 包括兩個額外的 DBCC 陳述式、DBCC SHRINKFILE 與 DBCC SHRINKDATABASE。前者能縮減資料檔案的大小,後者可縮減資料庫的所有資料檔案並釋放未使用的磁碟空間。
SQL Server 7 與 SQL Server 2000 支援一種改進的備份和還原結構。新的BACKUP 陳述式允許全部或部份的資料庫備份和記錄檔備份。新的 RESTORE 陳述式允許使用全部或部份資料庫備份和記錄檔備份來還原。這些代替了 SQL Server 較早版本中的 DUMP 和 LOAD 陳述式。關於 SQL Server 7.0 與 SQL Server 2000 新增陳述式與選項的完整清單,請見《線上叢書》里「Transact-SQL 新增與加強的功能」這個主題。
使用 T-SQL 執行還原
RESTORE T-SQL 命令和 BACKUP 命令類似( 第 32 章 中曾經討論過)。如同BACKUP 命令,第一次使用時可能相當困難,但是一些 DBA 還是喜歡將他們的管理程序放置到 SQL 命令檔中,以便於重復執行這些功能。和 BACKUP 命令一樣,RESTORE 命令提供了比 Enterprise Manager 更多的附加選項。
在本節中,我們將討論 RESTORE 命令的語法以及這個命令提供的多種選項。RESTORE 命令有兩種形式顯示如下:
RESTORE DATABASE 還原完整的資料庫、檔案或檔案群組。
RESTORE LOG 還原交易記錄檔。
如您所見,所用的命令要依照執行還原操作的類型而定。因為這些命令共用大部分的選項,所以我們稍候將在一個清單中討論這兩種還原類型(資料庫和記錄檔)的所有選項。
RESTORE 陳述式
執行完整資料庫還原時 RESTORE 陳述式的語法如下:
RESTORE DATABASE database_name
[ FROM backup_device ]
[ WITH options ]
這個陳述式只要求資料庫的檔案名稱和備份所在的位置。
執行檔案和檔案群組還原時陳述式的語法如下:
RESTORE DATABASE database_name
[ FILE = file_name ]
[ FILEGROUP = filegroup_name ]
[ FROM backup_device ]
[ WITH options ]
這個陳述式只要求資料庫名稱、檔案名稱或檔案群組名稱和備份所在的位置。
執行交易記錄還原時陳述式的語法如下:
RESTORE LOG database_name
[ FROM backup_device ]
[ WITH options ]
就如同其他的命令,database_name 是還原將要執行的資料庫名稱。backup_device 參數可以是邏輯備份裝置名稱或實體裝置的名稱。如果要指定一個實體裝置,必須限定它的裝置類型-也就是說,裝置名稱前面必須加上 DISK=、TAPE= 或 PIPE=。可以指定一個或多個裝置,中間以逗號隔開。
--------------------------------------------------------------------------------
說明
如果沒有提供 FORM 子句,還原將無法進行,而且仍然會執行回復(除非執行NORECOVERY 選項)。這項技術可以用來將資料庫設定為回復模式,而不還原其他附加資料。例如,可以執行多個差異還原操作,然後執行 RESTORE 陳述式,不需要 FORM 子句來將資料庫設定為回復模式,就能夠啟動回復過程。
--------------------------------------------------------------------------------
選項
表33-1列出了 RESTORE 命令可用的選項。如您所見,在執行還原操作時,這些選項提供了很大的彈性空間(如果列出的選項只對交易記錄還原有用,將會標示其限制性)。
表33-1 RESTORE 命令選項
選項 說明
RESTRICTED_USER 設定新還原資料庫的安全性,只有 db_owner、dbcreater 和 sysadmin 角色成員才能存取該資料庫。
FILE = file_number 如果在儲存媒體中有多個備份集,可用來識別所使用的備份集。例如設定該數值為2,則使用磁帶上的第二個備份集。
PASSWORD = password 指定儲存備份的密碼。
MEDIANAME =media_name 指定媒體的名稱。
MEDIAPASSWORD = password 指定儲存媒體的密碼。
MOVE 'logical_file_name'
TO 'OS_file_name'
更改還原檔案的位置,例如:MOVE 'Northwind' TO 'D:\data\Northwind.mdf'。如果舊的磁碟無法使用,而需要還原到新的磁碟上時,可以使用這個選項。
NORECOVERY |RECOVERY |
STANDBY = undo_file
NORECOVERY 指定在還原後,交易將無法退回或重新進行。如果將還原其他的備份(差異式備份或交易記錄檔備份),則需要用到這個選項。REVOVERY 為預設選項,它指定執行回復操作,並退回每個沒有提交的變更。STANDBY 指定在還原需要還原情況下,建立還原(undo)檔案。
KEEP_REPLICATION 指定當資料庫還原時復制設定要保存下來。
NOUNLOAD | UNLOAD NOUNLOAD 指定在還原完成後不卸載儲存媒體(例如,覆寫備份磁帶並彈出)。UNLOAD 為預設選項,指定在還原完成後卸載儲存媒體。
REPLACE 指出即使資料檔案已經存在,SQL Server 仍將還原這些檔案。現存的檔案將被刪除和覆寫。如果沒有指定 REPLACE,那麼 SQL Server 將會核對 database_name 是否已經存在。如果已經存在,那麼將終止還原操作。這個安全特性幫助避免無意地將還原覆寫正在工作的資料庫。
RESTART 指定 SQL Server 在還原操作被中斷後重新啟動還原操作。
STATS [ = percentage ] 在還原操作完成了指定的百分率後顯示訊息。如果需要監控操作的過程,這個選項將會很有用。
PARTIAL 指定執行部份還原。
STOPAT = date_time
(log restore only)
指定資料庫回復到 data_time 指定時刻的資料狀態(只對記錄檔還原有效)。
STOPATMARK = 'mark' 指定還原操作進行到標記處。
STOPBEFOREMARK = 'mark' 指定還原操作進行到標記之前。
說明
命名交易(Named transactions)是 SQL Server 2000 中的新功能。它們是使用命令 BEGIN TRANSACTION ... WITH MARK 的 mark_name 選項建立的,特點是可以使用 RESTORE 命令中的 STOPATMARK 和 STOPBEFOREMARK 功能。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
真實世界 使用RESTORE
這里有幾個使用 RESTORE T-SQL 命令的例子。
這個陳述式還原 Example 資料庫的資料檔:
RESTORE DATABASE Example
FROM Backup_Dev_1, Backup_Dev_2
WITH
NORECOVERY,
STATS = 5
GO
這個陳述式還原 Example 資料庫的交易記錄檔:
RESTORE LOG Example
FROM Backup_Dev_3, Backup_Dev_4
WITH
NORECOVERY,
STATS = 5,
UNLOAD
GO
和還原的結果一樣,輸出將顯示操作完成的百分率。將通知還原了多少頁面、還原花了多少時間,以及還原執行的速度(MB/sec)。
現在可用以下的命令回復資料庫:
RESTORE LOG Example
WITH RECOVERY
GO
您將再次看到關於還原操作的統計。
2. SQL,MYSQL和T-SQL之間有什麼分別
簡單來說,SQL和 T-SQL 都是查詢語言 ( Query Language )。而MySQL 是一種關聯式資料庫管理系統 ( Relational Database System
簡稱RDBMS )。 而T-SQL 是在 SQL 之上加入一些程序性 ( proceral ) 的功能,如控制流程語法 ( control-flow– if-then/else ),自訂變數 (variable declaration ),錯誤處理 ( errorhandling ) 等。但它只可以漏輪在Microsoft SQL Server 和 Sybase SQL Server 上執行辯悉。 詳情可參考下面的網址:SQL 全名是結構化查詢語言(Structured Query Language),是用於資料庫中的標准數據查詢語言。zh. *** /zh-/SQL MySQL 是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被Sun收攜搜乎購。2009年,Oracle收購Sun公司,MySQL成為Oracle旗下產品。zh. *** /zh-/MySQL Tract-SQL(又稱 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 實作,與 Oracle 的 PL/SQL 性質相近(不只是實作 ANSI SQL,也為自身資料庫系統的特性提供實作支援),目前在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用為核心的查詢語言。zh. *** /zh-/Tract-SQL 2010-10-31 09:15:00 補充: 對不起, 關聯式資料庫管理系統 的英文全寮寫應為 Relational Database Management System
簡稱RDBMS。
3. TSQL和SQL區別
SQL(StructuredQuery Language)結構化查詢語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。同時也是資料庫腳本文件的擴展名。主要包括:數據定義語言(DDL)數據操縱語言(DML) 數據控制語言(DCL)三種類型。其中數據定義語言(DDL) 用於定義數據結構,比如創建create、刪除drop、更改alter資料庫對象等。數據操縱語言(DML)用於檢索和修改數據結構,即我們常說的:增Insert ,刪Delete
改Update,查Select。數據控制語言(DCL) 用於規定資料庫用戶的各種許可權。
T-SQL:SQL 程序設計語言的增強版,它是用來讓應用程式與 SQL Server 溝通的主要語言。T-SQL 提供標准 SQL的DDL 和 DML功能,加上延伸的函數、系統預存程序以及程式設計結構(例如 IF 和 WHILE)讓程式設計更有彈性。
4. SQL和T_SQL有什麼區別
SQL = Structured Query Language
T-SQL = Transact-SQL = SQL 程式設計語言的增強版,它是用來讓應用程式與 SQL Server 溝通的主要語言。
兩者 都是語言.
在sql sever查詢分析器中的語句是sql 還是T-sql?
這個看你輸入的是什麼? 因為 T-SQL 包含了 SQL
也就是說, 你輸入了一句
SELECT * FROM 表
這樣的標準的 SQL 語句,但是 T-SQL 包含了 SQL
你既可以說你輸入的是 SQL , 也可以說你輸入了 T-SQL
但是假如你輸入了 T-SQL 擴展的功能,不屬於 SQL 的。
例如:
BEGIN
PRINT 'Hello World';
END
那麼這里,只能說你輸入的是 T-SQL, 沒法說你輸入了 SQL
SQL:結構化查詢語言,有 數據定義語言(DDL),例如:CREATE、DROP、ALTER等語句; 數據操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句;數據查詢語言(DQL),例如:SELECT語句;數據控制語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句
而T-SQL為SQL的擴展語言,譬如加入了程序語言中的if,while 等語法,同時可以使用函數等資料庫對象
非個人所寫
5. T-SQL語言中數據定義語言、數據操縱語言中所包含的主要語句和功能
--數據操作
SELECT
--從資料庫表中檢索數據行和列
INSERT
--向資料庫表添加新數據行
DELETE
--從資料庫表中刪除數據行
UPDATE
--更新資料庫表中的數據
--數據定義
CREATE
TABLE
--創建一個資料庫表
DROP
TABLE
--從資料庫中刪除表
ALTER
TABLE
--修改資料庫表結構
CREATE
VIEW
--創建一個視圖
DROP
VIEW
--從資料庫中刪除視圖
CREATE
INDEX
--為資料庫表創建一個索引
DROP
INDEX
--從資料庫中刪除索引
CREATE
PROCEDURE
--創建一個存儲過程
DROP
PROCEDURE
--從資料庫中刪除存儲過程
CREATE
TRIGGER
--創建一個觸發器
DROP
TRIGGER
--從資料庫中刪除觸發器
CREATE
SCHEMA
--向資料庫添加一個新模式
DROP
SCHEMA
--從資料庫中刪除一個模式
CREATE
DOMAIN
--創建一個數據值域
ALTER
DOMAIN
--改變域定義
DROP
DOMAIN
--從資料庫中刪除一個域
--數據控制
GRANT
--授予用戶訪問許可權
DENY
--拒絕用戶訪問
REVOKE
--解除用戶訪問許可權
--事務控制
COMMIT
--結束當前事務
ROLLBACK
--中止當前事務
SET
TRANSACTION
--定義當前事務數據訪問特徵
--程序化SQL
DECLARE
--為查詢設定游標
EXPLAN
--為查詢描述數據訪問計劃
OPEN
--檢索查詢結果打開一個游標
FETCH
--檢索一行查詢結果
CLOSE
--關閉游標
PREPARE
--為動態執行准備SQL
語句
EXECUTE
--動態地執行SQL
語句
DESCRIBE
--描述准備好的查詢
還有很多,你參考http://www.ark88.com/Article/Class31/Class32/2003-12-30/Article_20031230201228.html
6. sql 與 T-SQL是什麼關系
SQL全稱是「結構化查詢語言(Structured
Query
Language)」
SQL(Structured
Query
Language)是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
參考網址:
http://ke..com/view/34.html?wtp=tt
***********************************************
T-SQL是標准
SQL
程式設計語言的增強版,它是用來讓應用程式與
SQL
Server
溝通的主要語言。T-SQL
提供標准
SQL的DDL
和
DML
功能,加上延伸的函數、系統預存程序以及程式設計結構(例如
IF
和
WHILE)讓程式設計更有彈性。
參考網址:
http://ke..com/view/1387454.html?wtp=tt
*****************
補充:
你可以理解成T-sql是SqlServer支持的sql語法,他不是軟體,裝了SqlServer就ok了。
*****************
---
以上,希望對你有所幫助。
7. TSQL和SQL區別
兩種概念不一樣.
sql
是關系資料庫的標准語言.而
tsql(transact-sql)是標准sql的加強版,除了標準的sql命令外還對sql命令做了許多擴充.tsql語言主要由以下幾部份組成:
數據操作語言(dml)
例:增刪改查(insert
delete
update
select)
數據控制語言(dcl)
例:grant
revoke
等
數據定義語言(ddl)
例:create
drop
等
除此之外,tsql還包括有變數,函數以及其他命令!