使用自定义表类型(SQL Server 2008)
使用自定义表类型(SQL Server 2008)
http://tech.ddvip.com 2009年09月19日 来源:博客园 作者:陈希章
在 SQL Server 2008 中,用户定义表类型是指用户所定义的表示表结构定义的类型。您可以使用用户定义表类型为存储过程或函数声明表值参数,或者声明您要在批处理中或在存储过程或函数的主体中使用的表变量。有关如何定义表结构的详细信息,请参阅 CREATE TABLE (Transact-SQL)。
若要创建用户定义表类型,请使用 CREATE TYPE 语句。为了确保用户定义表类型的数据满足特定要求,您可以对用户定义表类型创建唯一约束和主键。
有关与用户定义类型相关联的目录视图的信息,请参阅 sys.types 和 sys.table_types。
限制
用户定义表类型具有下列限制:
用户定义表类型不能用作表中的列或结构化用户定义类型中的字段。
基于用户定义表类型的别名类型
[NOT FOR REPLICATION] 选项是不允许的。
CHECK 约束要求保留计算列。
计算列的主键必须是 PERSISTED 和 NOT NULL。
无法对用户定义表类型创建非聚集索引,除非该索引是对用户定义表类型创建 PRIMARY KEY 或 UNIQUE 约束的结果。(SQL Server 使用索引强制实施任何 UNIQUE 或 PRIMARY KEY 约束。)
不能在用户定义表类型的定义中指定 DEFAULT 值。
在创建用户定义表类型定义后不能对其进行修改。
不能在用户定义表类型的计算列的定义中调用用户定义函数。
安全性
用户定义表类型的权限通过使用下列 Transact-SQL 关键字来遵循 SQL Server 的对象安全模式:CREATE、GRANT、DENY、ALTER、CONTROL、TAKE OWNERSHIP、REFERENCES、EXECUTE、VIEW DEFINITION 和 REVOKE。
下面我用一个实例来讲解一下
-- ================================
-- 创建和使用自定义表类型
-- 陈希章
-- ================================
USE master
GO
-- ================================
-- 创建测试数据库
-- ================================
CREATE DATABASE demo
GO
-- ================================
-- 创建一个表
-- ================================
USE demo
GO
CREATE TABLE Customers
(
Id int NOT NULL,
Name char(10) NULL,
PRIMARY KEY (Id)
)
GO
USE d
相关文档:
SQL Server的一些系统变量
sp_configure 'min server memory' --服务器最小内存gosp_configure 'max server memory' --服务器最大内存'gosp_configure 'index create memory'--创建索引占用的内存go--sp_configure 'min memory per query'--每次查询占用的最小内存
--获取I/O工作情况select -- @@id_bus ......
SQL Server Extended Events(下面简称XEvent)是SQL Server 2008里新加的事件处理系统,用来取代SQL Server原
先的SQL Trace的跟踪机制。事件处理系统对一个复杂服务器系统的排错,调试是极为关键的。和SQL Server原来的事
件处理系统相比较,XEvent具有下列的优势:
消耗更少的系统资源,更适用于在产品服务器上的 ......
(适用 SQL Server 2005 其他版本)
收藏
SQL Server 2005 Express 是微软提供的数据库的低端解决方案,
可免费任意随产品分发, 可以在XP等非专业服务器系统下安装, 还可以远程访问, 对于小型数据应用程序已足够满足数据使用要求.
默认安装下,SQL Server ......
-- 说明:
-- 1. 要删除表 table_name, 须先判断该表是否正被数据库中其它表所引用.
-- 2. 如果未被引用, 可直接 DROP TABLE table_name; 否则必须先删除引用表的约束, 再 DROP TABLE table_name.
-- 3. 另外, table_name 是否正引用其它表的情况无须考虑.
-- 创建主表
CREATE TABLE tParent
......
SQL Server 分页
建立表:
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar ......