T-SQL

来源:互联网 发布:mac远程桌面连接linux 编辑:程序博客网 时间:2024/06/02 20:00
用户自定义数据类型:(sp_addtype

-- Create a birthday data type that allows nulls.
EXEC sp_addtype birthday, datetime, 'NULL'
GO
-- Create a table using the new data type.
CREATE TABLE employee
   (emp_id         char(5),
   emp_first_name   char(30),
   emp_last_name   char(40),
   emp_birthday      birthday)

临时表:

  • 本地临时表

    以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表。

  • 全局临时表

    以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。

现在,临时表的许多传统用途可由具有 table 数据类型的变量替换。

sysobjects(系统表)

在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

列名数据类型描述
namesysname对象名。
Idint对象标识号。
xtypechar(2)对象类型。可以是下列对象类型中的一种:

C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程

uidsmallint所有者对象的用户 ID。
infosmallint保留。仅限内部使用。
statusint保留。仅限内部使用。
base_schema_
ver
int保留。仅限内部使用。
replinfoint保留。供复制使用。
parent_objint父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。
crdatedatetime对象的创建日期。
ftcatidsmallint为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。
schema_verint版本号,该版本号在每次表的架构更改时都增加。
stats_schema_
ver
int保留。仅限内部使用。
typechar(2)对象类型。可以是下列值之一:

C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程

userstatsmallint保留。
sysstatsmallint内部状态信息。
indexdelsmallint保留。
refdatedatetime留作以后使用。
versionint留作以后使用。
deltrigint保留。
instrigint保留。
updtrigint保留。
seltrigint保留。
categoryint用于发布、约束和标识。
cachesmallint保留。

可应用于查看用户拥有表、触发器、视图等。如:
Select * from sysobjects where xtype like 'U%'

原创粉丝点击