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还包括有变量,函数以及其他命令!