官术网_书友最值得收藏!

4.1 Transact-SQL概述

在前面的章節(jié)中,其實已經(jīng)使用了T-SQL語言,只是沒有系統(tǒng)地對該語言進行介紹。事實上不管應用程序的用戶界面如何,與SQL Server實例通信的所有應用程序都通過將Transact-SQL語句發(fā)送到服務器進行通信。

對數(shù)據(jù)庫進行查詢和修改操作的語言叫作SQL,其含義是結(jié)構(gòu)化查詢語言(Structured Query Languate)。SQL有許多不同的類型,有3個主要的標準:① ANSI(美國國家標準機構(gòu))SQL;②對ANSI SQL修改后在1992年采納的標準,稱為SQL92或SQL2;③最近的SQL99標準。SQL99標準從SQL2擴充而來并增加了對象關(guān)系特征和許多其他新功能。其次,各大數(shù)據(jù)庫廠商提供不同版本的SQL。這些版本的SQL支持原始的ANSI標準,而且在很大程度上支持新推出的SQL92標準。

Transact-SQL語言是SQL的一種實現(xiàn)形式,它包含了標準的SQL語言部分。標準的SQL語句幾乎完全可以在Transact-SQL語言中執(zhí)行,因為包含了這些標準的SQL語言來編寫應用程序和腳本,所以提高了它們的可移植性。Transact-SQL語言在具有SQL的主要特點的同時,還增加了變量、運算符、函數(shù)、流程控制和注釋等語言因素,使得T-SQL的功能更加強大。另外,在標準的ANSI SQL99之外,Transact-SQL語言根據(jù)需要又增加了一些非標準的SQL語言。在有些情況下,使用非標準的SQL語言,可以簡化一些操作步驟。

4.1.1 什么是Transact-SQL

Transact-SQL是Microsoft公司在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)SQL Server中的SQL3標準的實現(xiàn),是微軟對SQL的擴展。在SQL Server中,所有與服務器實例的通信,都是通過發(fā)送T-SQL語句到服務器來實現(xiàn)的。根據(jù)其完成的具體功能,可以將T-SQL語句分為4大類,分別為數(shù)據(jù)操作語句、數(shù)據(jù)定義語句、數(shù)據(jù)控制語句和一些附加的語言元素。

數(shù)據(jù)操作語句:

數(shù)據(jù)定義語句:

數(shù)據(jù)控制語句:

附加的語言元素:

4.1.2 T-SQL語法的約定

表4-1列出了Transact-SQL參考的語法關(guān)系圖中使用的約定,并進行了說明。

表4-1 語法約定

除非另外指定,否則,所有對數(shù)據(jù)庫對象名的Transact-SQL引用將由4部分名稱組成,格式如下:

  • server_name:指定鏈接的服務器名稱或遠程服務器名稱。
  • database_name:表示如果對象駐留在SQL Server的本地實例中,則指定SQL Server數(shù)據(jù)庫的名稱。如果對象在鏈接服務器中,則database_name將指定OLE DB目錄。
  • schema_name:表示如果對象在SQL Server數(shù)據(jù)庫中,則指定包含對象的架構(gòu)的名稱。如果對象在鏈接服務器中,則schema_name將指定OLE DB架構(gòu)名稱。
  • object_name:表示對象的名稱。

引用某個特定對象時,不必總是指定服務器、數(shù)據(jù)庫和架構(gòu)供SQL Server數(shù)據(jù)庫引擎標識該對象。但是,如果找不到對象,就會返回錯誤消息。

除了使用時完全限定引用時的4個部分,在引用時若要省略中間節(jié)點,需要使用句點來指示這些位置。表4-2顯示了引用對象名的有效格式。

表4-2 引用對象名格式

許多代碼示例用字母N作為Unicode字符串常量的前綴。如果沒有N前綴,則字符串被轉(zhuǎn)換為數(shù)據(jù)庫的默認代碼頁。此默認代碼頁可能不識別某些字符。

主站蜘蛛池模板: 县级市| 抚松县| 禹州市| 阜南县| 博乐市| 双辽市| 晋江市| 白城市| 南丹县| 乌什县| 铜山县| 屏南县| 廉江市| 堆龙德庆县| 垦利县| 象州县| 衡山县| 彭泽县| 准格尔旗| 准格尔旗| 温宿县| 新化县| 枣庄市| 靖宇县| 理塘县| 威信县| 平阳县| 清水县| 包头市| 郴州市| 耿马| 广东省| 石狮市| 衡东县| 临城县| 钟祥市| 石河子市| 罗田县| 米易县| 宜兰市| 浦江县|