触发器的创建及使用(sqlserver 2005)
创建 DML 或 DDL 触发器。触发器是数据库服务器中发生事件时自动执行的特种存储过程。如果用户要通过数据操作语言 (DML) 事件编辑数据,则执行 DML 触发器。DML 事件是针对表或视图的 INSERT、UPDATE 或 DELETE 语句。DDL 触发器用于响应各种数据定义语言 (DDL) 事件。这些主要是 CREATE、ALTER 和 DROP 语句。通过 Transact-SQL 语句或使用 Microsoft .NET Framework 公共语言运行时 (CLR) 创建的程序集的方法,可以在 SQL Server 2005 Database Engine 中直接创建 DML 和 DDL 触发器,将其上传给一个 SQL Server 实例。SQL Server 允许为任何特定语句创建多个触发器。
安全性 注意:
触发器内的恶意代码可使用升级后的权限运行。有关如何减少这种隐患的详细信息,请参阅管理触发器安全性。
Transact-SQL 语法约定
语法
Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ......
索引的创建及使用(sqlserver 2005)
为指定表或视图创建关系索引,或为指定表创建 XML 索引。可在向表中填入数据前创建索引。可通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。
Transact-SQL 语法约定
语法
Create Relational Index CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WITH ( <relational_index_option> [ ,...n ] ) ]
[ ON { partition_scheme_name ( column_name )
| filegroup_name
| default
}
]
[ ; ]
<object> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
table_or_view_name
}
<relational_index_option> ::=
......
存储过程的创建及使用(sqlserver 2005)
创建存储过程。存储过程是已保存的 Transact-SQL 语句集合,或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可接收并返回用户提供的参数。可以创建过程供永久使用,或在一个会话(局部临时过程)中临时使用,或在所有会话(全局临时过程)中临时使用。
启动 SQL Server 的一个实例时,也可以创建并自动运行存储过程。
Transact-SQL 语法约定
语法
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ [ OUT [ PUT ]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] | <method_specifier> }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE_AS_Clause ]
<sql_statement> ::=
{ [ BEGIN ] statements [ END ] ......
推荐给大家[url=DELPHI深度探索 (第2版)PDF电子书][/url]
因为需要前几天在网上搜搜过这本书书,可没有,源码倒是有,今天打开经常去的网站,居然发现提供下载了,这个网站自己差不多每天都要打开看看,这几天忙糊涂了,居然没有看到,在这推荐给大家,能下载的,速度很快。
[url=http://www.delphifans.com/SoftView/SoftView_2833.html][/url]
现在好的网站真不多,这个我觉得是比较好的一个了,今年前些时候,站长还每天发布一个自己的源码,比较那些收费的网站,站长做的很好了。
[color=#FF6600]声明:我和这个网站没有任何关系(ydlchina)[/color]
另外我每天去的网站还有
[url=http://www.2ccc.com/][/url]Delphi盒子
[url=http://www.ccrun.com/][/url]C++Builder研究(妖哥)
大家还有好的网站推荐一下 ......
1. 抽象工厂的产品
{《HeadFirst设计模式》工厂模式之抽象工厂 }
{ 抽象工厂的产品 }
{ 编译工具:Delphi7.0 }
{ E-Mail :xshlife@163.com }
unit uPizzaIngredient;
interface
type
TDough = class(TObject)
end;
TThinCrustDough = class(TDough)
end;
TThickCrustDough = class(TDough)
end;
////////////////////////////////
TSauce = class(TObject)
end;
TMarinaraSauce = class(TSauce)
end;
TPlumTomatoSauce = class(TSauce)
end;
////////////////////////////////
TCheese = class(TObject)
end;
TReggianoCheese = class(TCheese)
end;
TMozzarellaCheese = class(TCheese)
end;
//////////////////////////////////
TPepperoni = class(TObject)
end;
TSlicedPepperoni = class(TPepperoni)
end;
////////////////////////////////////
TClams = class(TObject)
end;
TFreshClams = class(TClams)
end;
......
//定义MyClass
TMyClass = class
GUID: string;
Name: string;
bSex: Boolean;
Tel : string;
end;
//取值
var
obj: TMyClass;
begin
obj := TMyClass.Create;
with Memo1.Lines do
begin
Add('对象大小:' + IntToStr(obj.InstanceSize));
Add('对象所在地址:'+ IntToStr(Integer(obj)));
Add('GUID所在地址:'+ IntToStr(Integer(@obj.GUID)));
Add('Name所在地址:'+ IntToStr(Integer(@obj.Name)));
Add('bSex所在地址:'+ IntToStr(Integer(@obj.bSex)));
Add('Tel所在地址:'+ IntToStr(Integer(@obj.Tel)));
end;
obj.Free;
end;
结果:
两个版本的Delphi对象大小以及分配的起始地址不同 ......