仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 982|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之在ERwin中创建域所触及到的SQL2000的相...

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:34:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因此我们的方案中要构造这种逆操作。Event_type增加一种FlashBACK_EVENT。这类操作形式与Query_Event相同,都是简单的SQL语句,只是包含了将数据恢复的操作。

将划定规矩/默许值绑定到用户界说数据范例
利用此对话框检察或指定以下选项。

选项
划定规矩

检察但愿绑定到用户界说的数据范例的划定规矩名。当绑定到列或用户界说数据范例时,划定规矩将指定能够拔出到列中的可承受的值。划定规矩是一种向后兼容的功效,实行一些与反省束缚不异的功效。CHECK束缚是利用ALTER或CREATETABLE的CHECK关头字创立的,是对列中的值举行限定的首选尺度办法(能够对一列或多列界说多个束缚)。列或用户界说数据范例只能有一个绑定的划定规矩。可是,列能够同时具有划定规矩和一个或多个与其联系关系的反省束缚。在这类情形下,将反省一切限定。有关划定规矩的更多信息,请拜见CREATERULE。

划定规矩
划定规矩是一个向后兼容的功效,用于实行一些与CHECK束缚不异的功效。CHECK束缚是用来限定列值的首选尺度办法。CHECK束缚比划定规矩更简明,一个列只能使用一个划定规矩,可是却能够使用多个CHECK束缚。CHECK束缚作为CREATETABLE语句的一部分举行指定,而划定规矩以独自的工具创立,然后绑定到列上。

下例创立一个划定规矩,实行与后面主题中的CHECK束缚示例不异的功效。Microsoft®SQLServer™2000首选的办法是CHECK束缚。

CREATERULEid_chkAS@idBETWEEN0and10000
GO
CREATETABLEcust_sample
(
cust_idint
PRIMARYKEY,
cust_namechar(50),
cust_addresschar(50),
cust_credit_limitmoney,
)
GO
sp_bindruleid_chk,cust_sample.cust_id
GO

称号

检察用户界说的数据范例的称号和数据范例。经由过程选中"绑定"框选择要绑定的每一个划定规矩。选择"仅未来"框会避免现有效户界说数据范例列承继新划定规矩。假如选定"仅未来"框,新划定规矩将绑定到以后没有划定规矩或利用现有效户界说数据范例划定规矩的任何用户界说数据范例列。有关绑定例则的更多信息,请拜见sp_bindrule。

1、CREATERULE
创立称为划定规矩的工具。当绑定到列或用户界说数据范例时,划定规矩将指定能够拔出到列中的可承受的值。划定规矩是一种向后兼容的功效,实行一些与反省束缚不异的功效。CHECK束缚是利用ALTER或CREATETABLE的CHECK关头字创立的,是对列中的值举行限定的首选尺度办法(能够对一列或多列界说多个束缚)。列或用户界说数据范例只能有一个绑定的划定规矩。可是,列能够同时具有划定规矩和一个或多个与其联系关系的反省束缚。在这类情形下,将反省一切限定。

语法
CREATERULErule
AScondition_expression

参数
rule

是新划定规矩的称号。划定规矩称号必需切合标识符划定规矩。能够选择是不是指定例则一切者的称号。

condition_expression

是界说划定规矩的前提。划定规矩能够是WHERE子句中任何无效的表达式,而且能够包括诸如算术运算符、干系运算符和谓词(如IN、LIKE、BETWEEN)之类的元素。划定规矩不克不及援用列或别的数据库工具。能够包括不援用数据库工具的内置函数。

condition_expression包括一个变量。每一个部分变量的后面都有一个@标记。该表达式援用经由过程UPDATE或INSERT语句输出的值。在创立划定规矩时,可使用任何称号或标记暗示值,但第一个字符必需是@标记。

正文
在单个批处置中,CREATERULE语句不克不及与别的Transact-SQL语句组合利用。划定规矩不合用于在创立划定规矩时已存在于数据库中的数据,并且划定规矩不克不及绑定到体系数据范例。划定规矩只能在以后的数据库中创立。创立划定规矩后,实行sp_bindrule可将划定规矩绑定到列或用户界说数据范例。

划定规矩必需与列的数据范例兼容。划定规矩不克不及绑定到text、image或timestamp列。必定要用单引号()将字符和日期常量引发来,在二进制常量前加0x。比方,不克不及将"@valueLIKEA%"用作数字列的划定规矩。假如划定规矩与其所绑定的列不兼容,Microsoft®SQLServer™将在拔出值时(而不是在绑定例则时)前往毛病信息。

关于用户界说数据范例,只要实验在该范例的数据库列中拔出值,或更新该范例的数据库列时,绑定到该范例的划定规矩才会激活。由于划定规矩不查验变量,以是在向用户界说数据范例的变量赋值时,不要付与绑定到该数据范例的列的划定规矩所回绝的值。

若要取得关于划定规矩的报表,请利用sp_help。若要显现某条划定规矩的文本,请以该划定规矩的称号作为参数来实行存储历程sp_helptext。若要重定名划定规矩,请利用sp_rename。

要创立与原有划定规矩同名的新划定规矩,必需在创立新划定规矩之前将原有划定规矩撤除(利用DROPRULE),而在撤除划定规矩之前,必需起首排除绑定(利用sp_unbindrule)。利用sp_unbindrule排除划定规矩与列的绑定。

能够在不排除原有绑定的情形下将新划定规矩绑定到列或数据范例;新划定规矩将替换原有划定规矩。绑定到列的划定规矩老是优先于绑定到用户界说数据范例的划定规矩。将划定规矩绑定到列时,该划定规矩将交换已绑定到该列的用户界说数据范例的划定规矩。可是,将划定规矩绑定到用户界说数据范例时,该划定规矩不会交换绑定到该数据范例的列的划定规矩。下表显现了当将划定规矩绑定到已存在划定规矩的列和用户界说数据范例时,划定规矩失效的优先按次。

旧划定规矩绑定到
新划定规矩绑定到用户界说数据范例列
用户界说数据范例旧划定规矩被交换没有变更
列旧划定规矩被交换旧划定规矩被交换


假如列同时有默许值和划定规矩与之联系关系,则默许值必需满意划定规矩的界说。与划定规矩抵触的默许值永久不克不及拔出列。每次试图拔出如许的默许值时,SQLServer城市天生毛病信息。



申明SQLServer是将空字符串注释为单个空格仍是真实的空字符串取决于sp_dbcmptlevel的设置。假如兼容级别小于或即是65,SQLServer就将空字符串注释为单个空格。假如兼容级别即是70,则SQLServer将空字符串注释为空字符串。有关更多信息,请拜见sp_dbcmptlevel。


权限
CREATERULE权限默许授与sysadmin流动服务器脚色成员和db_ddladmin和db_owner流动数据库脚色成员。sysadmin、db_owner和db_securityadmin脚色的成员能够将权限让渡给其他用户。

示例
A.局限划定规矩
下例创立一个划定规矩,用以限定拔出该划定规矩所绑定的列中的整数局限。

CREATERULErange_rule
AS
@range>=$1000AND@range<$20000

B.列表划定规矩
下例创立一个划定规矩,用以将输出到该划定规矩所绑定的列中的实践值限定为只能是该划定规矩中列出的值。

CREATERULElist_rule
AS
@listIN(1389,0736,0877)

C.形式划定规矩
下例创立一个遵守这类形式的划定规矩:恣意两个字符的前面跟一个连字符和恣意多个字符(或没有字符),并以0到9之间的整数开头。

CREATERULEpattern_rule
AS
@valueLIKE__-%[0-9]
2、DROPRULE从以后数据库中删除一个或多个用户界说的划定规矩。语法DROPRULE{rule}[,...n]参数rule是要删除的划定规矩。划定规矩称号必需切合标识符划定规矩。有关标识符划定规矩的更多信息,请拜见利用标识符。能够选择是不是指定例则一切者的称号。n是暗示能够指定多个划定规矩的占位符。正文假如划定规矩以后绑定到列或用户界说的数据范例,若要撤除划定规矩,起首需排除绑定。利用sp_unbindrule排除绑定例则。假如在试图撤除划定规矩时划定规矩是绑定的,将显现毛病信息并作废DROPRULE语句。撤除划定规矩后,能够在之前受划定规矩束缚的列中输出新数据而不受划定规矩的束缚。现无数据不受任何影响。DROPRULE语句不合用于CHECK束缚。有关撤除CHECK束缚的更多信息,请拜见本卷中的"ALTERTABLE"。权限默许情形下,将DROPRULE权限授与划定规矩一切者,该权限不成让渡。但是,db_owner和db_ddladmin流动数据库脚色成员和sysadmin流动服务器脚色成员能够经由过程在DROPRULE内指定一切者撤除任何工具。示例下例排除绑命名为pub_id_rule的划定规矩并将其撤除。USEpubs
IFEXISTS(SELECTnameFROMsysobjects
WHEREname=pub_id_rule
ANDtype=R)
BEGIN
EXECsp_unbindrulepublishers.pub_id
DROPRULEpub_id_rule
END
GO


3、CREATEDEFAULT创立称为默许值的工具。当绑定到列或用户界说数据范例时,假如拔出时没有明白供应值,默许值便指定一个值,并将其拔出到工具所绑定的列中(大概,在用户界说数据范例的情形下,拔出到一切列中)。默许值是一个向后兼容的功效,它实行一些与利用ALTER或CREATETABLE语句的DEFAULT关头字创立的默许值界说不异的功效。默许值界说是限定列数据的首选而且尺度的办法,由于界说和表存储在一同,当撤除表时,将主动撤除默许值界说。但是,当在多个列中屡次利用默许值时,默许值也有其长处。语法CREATEDEFAULTdefaultASconstant_expression参数default默许值的称号。默许值称号必需切合标识符的划定规矩。能够选择是不是指定默许值一切者称号。constant_expression只包括常量值的表达式(不克不及包括任何列或别的数据库工具的称号)。可使用任何常量、内置函数或数学表达式。字符和日期常量用单引号()引发来;泉币、整数和浮点常量不必要利用引号。二进制数据必需以0x开首,泉币数据必需以美圆标记($)开首。默许值必需与列数据范例兼容。正文只能在以后数据库中创立默许值的称号。在数据库中,每一个一切者的各默许值称号必需是独一的。创立默许值后,利用sp_bindefault将其绑定到列或用户界说数据范例。假如默许值和其绑定到的列不兼容,则在实验拔出默许值时,Microsoft®SQLServer™会天生毛病信息。比方,N/A不克不及用作numeric列的默许值。假如默许值关于它所绑定的列而言太长,该值就会被截断。在单个批处置中,CREATEDEFAULT语句不克不及与别的Transact-SQL语句组合利用。在以不异的称号创立新的默许值之前,必需撤除原本的默许值,在撤除前,必需经由过程实行sp_unbindefault来作废对该默许值的绑定。假如列同时有默许值和划定规矩与之联系关系,则默许值不克不及违背划定规矩。与划定规矩抵触的默许值将永久不克不及拔出列,每次试图拔出如许的默许值时,SQLServer城市天生毛病信息。当绑定到列今后,在以下情形下将拔出默许值:非显式地拔出值。在INSERT中利用DEFAULTVALUES或DEFAULT关头字来拔出默许值。假如在创立列时指定NOTNULL而且没无为其创立默许值,则当用户未能为该列输出项时,就会天生毛病信息。下表申明默许值的存在性与将列界说为NULL或NOTNULL之间的干系。表中的条目显现了却果。列界说没有输出项,没有默许值没有输出项,有默许值输出NULL,没有默许值输出NULL,有默许值NULLNULLdefaultNULLNULLNOTNULLErrordefaulterrorerror申明SQLServer是将空字符串注释为单个空格仍是注释为真实的空字符串,由sp_dbcmptlevel的设置把持。假如兼容级别小于或即是65,SQLServer就将空字符串注释为单个空格。假如兼容级别即是70,则SQLServer将空字符串注释为空字符串。有关更多信息,请拜见sp_dbcmptlevel。若要重定名默许值,请利用sp_rename。若要取得默许值的报表,请利用sp_help。权限CREATEDEFAULT的权限默许授与sysadmin流动服务器脚色成员和db_owner和db_ddladmin流动数据库脚色成员。sysadmin、db_owner和db_securityadmin脚色的成员能够将权限让渡给其他用户。示例A.创立复杂的字符默许值上面的示例创立字符默许值unknown。USEpubs
GO
CREATEDEFAULTphonedfltASunknown
B.绑定默许值上面的示例绑定示例A中创立的默许值。只要当authors表的phone列没有输出项时,该默许值才起感化。请注重,没有输出项和显式指定空值分歧。由于名为phonedflt的默许值不存在,以是以下Transact-SQL语句将失利。本例只用于演示。USEpubs
GO
sp_bindefaultphonedflt,authors.phone
4、DROPDEFAULT从以后数据库中删除一个或多个用户界说的默许值。DROPDEFAULT语句不合用于DEFAULT束缚。有关撤除DEFAULT束缚(经由过程利用CREATETABLE或ALTERTABLE语句的DEFAULT选项所创立)的更多信息,请拜见本卷中的"ALTERTABLE"。语法DROPDEFAULT{default}[,...n]参数default是现有默许值的称号。若要检察现有默许值的列表,请实行sp_help。默许值必需切合标识符划定规矩。有关更多信息,请拜见利用标识符。能够选择是不是指定默许值一切者称号。n是暗示能够指定多个默许值的占位符。正文撤除默许之前,经由过程实行sp_unbindefault排除绑定默许值(假如默许值以后绑定到列或用户界说的数据范例)。从同意空值的列中撤除默许值后,当增加行且没有显式供应值时,将在谁人地位拔出NULL。从NOTNULL列中撤除默许值后,当增加行且没有显式供应值时,将前往毛病信息。这些行今后作为尺度INSERT语句举动的一部分增加。权限默许情形下,将DROPDEFAULT权限授与默许值一切者,该权限不成让渡。但是,db_owner和db_ddladmin流动数据库脚色成员和sysadmin流动服务器脚色成员能够经由过程在DROPDEFAULT中指定一切者撤除任何默许工具。示例A.撤除默许值假如默许值没有绑定到列或用户界说的数据范例,能够很简单地利用DROPDEFAULT将其撤除。下例删除用户创立的名为datedflt的默许值。USEpubs
IFEXISTS(SELECTnameFROMsysobjects
WHEREname=datedflt
ANDtype=D)
DROPDEFAULTdatedflt
GO
B.撤除绑定到列的默许值下例排除绑定与authors表的phone列联系关系的默许值,然后撤除名为phonedflt的默许值。USEpubs
IFEXISTS(SELECTnameFROMsysobjects
WHEREname=phonedflt
ANDtype=D)
BEGIN
EXECsp_unbindefaultauthors.phone
DROPDEFAULTphonedflt
END
GOsp_bindrule将划定规矩绑定到列或用户界说的数据范例。语法sp_bindrule[@rulename=]rule,[@objname=]object_name[,[@futureonly=]futureonly_flag]参数[@rulename=]rule由CREATERULE语句创立的划定规矩称号。rule的数据范例为nvarchar(776),无默许值。[@objname=]object_name绑定了划定规矩的表和列或用户界说的数据范例。object_name的数据范例为nvarchar(517),无默许值。假如object_name没有接纳table.column格局,则以为它属于用户界说数据范例。默许情形下,用户界说的数据范例的现有列承继rule,除非间接在列上绑定了划定规矩。申明object_name中能够含有[and]字符作为分开标识符。有关更多信息,请拜见分开标识符。[@futureonly=]futureonly_flag仅当将划定规矩绑定到用户界说的数据范例时才利用。future_only_flag的数据范例为varchar(15),默许值为NULL。将此参数在设置为futureonly时,它会避免用户界说数据范例的现有列承继新划定规矩。假如futureonly_flag为NULL,那末新划定规矩将绑定到用户界说数据范例的每列,前提是此数据范例以后无划定规矩大概利用用户界说数据范例的现有划定规矩。前往代码值0(乐成)或1(失利)正文可使用sp_bindrule在不作废绑定现有划定规矩的情形下,将新划定规矩绑定到列(只管最好利用CHECK束缚)大概用户界说的数据范例。替换原有划定规矩。假如利用现有CHECK束缚将划定规矩绑定到列,那末将评价一切限定。不克不及将划定规矩绑定到Microsoft®SQLServer™数据范例。当试图实行INSERT语句时(不是在绑准时),将强行实行划定规矩。只管此处INSERT不法,仍旧能够将字符划定规矩绑定到numeric数据范例的列。除非将futureonly_flag指定为futureonly,不然用户界说数据范例的现有列将承继新划定规矩。利用用户界说数据范例界说的新列一直承继划定规矩。可是,假如ALTERTABLE语句的ALTERCOLUMN子句将列的数据范例变动为绑定例则的用户界说数据范例,那末列不会承继与数据范例绑定的划定规矩。必需利用sp_bindrule专门将划定规矩绑定到列。将划定规矩绑定到列时,相干信息将增加到syscolumns表中。将划定规矩绑定到用户界说的数据范例时,相干信息将增加到systypes表中。权限只要sysadmin流动服务器脚色、db_owner和db_ddladmin流动数据库脚色成员及表一切者才干实行sp_bindrule。示例A.将划定规矩绑定到列假定已用CREATERULE语句在以后数据库中创立名为today的划定规矩,此示例将划定规矩绑定到employees表的hiredate列。将行增加到employees时,依照today划定规矩反省hiredate列的数据。USEmaster
EXECsp_bindruletoday,employees.[hiredate]
B.将划定规矩绑定到用户界说的数据范例假定存在名为rule_ssn的划定规矩和名为ssn的用户界说数据范例,此示例将rule_ssn绑定到ssn。在CREATETABLE语句中,范例ssn的列承继rule_ssn划定规矩。范例ssn的现有列也承继rule_ssn划定规矩,除非为futureonly_flag指定了futureonly大概在ssn上间接绑定了划定规矩。绑定到列的划定规矩一直优先于绑定到数据范例的划定规矩。USEmaster
EXECsp_bindrulerule_ssn,ssn
C.利用futureonly_flag此示例将rule_ssn划定规矩绑定到用户界说数据范例ssn。由于已指定futureonly,以是不影响范例ssn的现有列。USEmaster
EXECsp_bindrulerule_ssn,ssn,futureonly
D.利用分开标识符此示例显现了在object_name平分隔标识符的利用。USEmaster
CREATETABLE[t.2](c1int)
--Noticetheperiodaspartofthetablename.
EXECsp_binderulerule1,[t.2].c1
--Theobjectcontainstwoperiods;
--thefirstispartofthetablename
--andtheseconddistinguishesthetablenamefromthecolumnname.

6、sp_unbindrule
在以后数据库中为列或用户界说数据范例排除划定规矩绑定。

语法
sp_unbindrule[@objname=]object_name
[,[@futureonly=]futureonly_flag]

参数
[@objname=]object_name

是要排除划定规矩绑定的表和列大概用户界说数据范例的称号。object_name的数据范例为nvarchar(776),无默许值。假如参数不是table.column的情势,则假定object_name为用户界说数据范例。当为用户界说数据范例排除划定规矩绑准时,一切属于该数据范例并具有不异划定规矩的列也同时排除划定规矩绑定。对属于该数据范例的列,假如其划定规矩间接绑定到列上,则该列不受影响。



申明object_name中能够含有[and]字符作为分开标识符。有关更多信息,请拜见分开标识符。


[@futureonly=]futureonly_flag

仅用于排除用户界说数据范例划定规矩的绑定。futureonly_flag的数据范例为varchar(15),其默许值为NULL。当参数futureonly_flag为futureonly时,现有的属于该数据范例的列不会得到指定例则。

前往代码值
0(乐成)或1(失利)

正文
若要显现某条划定规矩的文本,请以该划定规矩的称号作为参数来实行存储历程sp_helptext。

排除划定规矩绑准时,假如划定规矩绑定到列,则绑定信息从表syscolumns中删除。假如划定规矩绑定到用户界说数据范例,则绑定信息从表systypes中删除。

当从用户界说数据范例排除划定规矩绑准时,任何具有该用户界说数据范例的列也同时排除该划定规矩的绑定。关于厥后用ALTERTABLE语句的ALTERCOLUMN子句变动了数据范例的列,该划定规矩仍大概绑定在该列上,必需利用存储历程sp_unbindrule(并指定列名)明白地从这些列中排除划定规矩绑定。

权限
只要sysadmin流动服务器脚色、db_owner和db_ddladmin流动数据库脚色的成员和表一切者才干实行sp_unbindrule。

示例
A.为列排除划定规矩绑定
下例为表employees的startdate列排除划定规矩绑定。

EXECsp_unbindruleemployees.startdate

B.为用户界说数据范例排除划定规矩绑定
下例为用户界说数据范例ssn排除划定规矩绑定。这将为该数据范例的现有列和未来的列排除划定规矩绑定。

EXECsp_unbindrulessn

C.利用futureonly_flag
下例为用户界说数据范例ssn的排除划定规矩绑定,现有的ssn列不受影响。

EXECsp_unbindrulessn,futureonly

D.利用分开标识符
下例显现了在object_name中定界标识符的利用。

CREATETABLE[t.4](c1int)--Noticetheperiodaspartofthetable
--name.
GO
CREATERULErule2AS@value>100
GO
EXECsp_bindrulerule2,[t.4].c1--Theobjectcontainstwo
--periods;thefirstispartofthetablenameandthesecond
--distinguishesthetablenamefromthecolumnname.
GO
EXECsp_unbindrule[t.4].c1

7、sp_addtype
创立用户界说的数据范例。

语法
sp_addtype[@typename=]type,
[@phystype=]system_data_type
[,[@nulltype=]null_type]
[,[@owner=]owner_name]

参数
[@typename=]type

用户界说的数据范例的称号。数据范例称号必需依照标识符的划定规矩,并且在每一个数据库中必需是独一的。type的数据范例为sysname,没有默许值。

[@phystype=]system_data_type

是用户界说的数据范例所基于的物理数据范例或Microsoft®SQLServer™供应的数据范例(decimal、int等等)。system_data_type的数据范例是sysname,没有默许值,多是这些值之一:

binary(n)imagesmalldatetime
Bitintsmallint
char(n)nchar(n)text
Datetimentexttinyint
Decimalnumericuniqueidentifier
decimal[(p[,s])]numeric[(p[,s])]varbinary(n)
Floatnvarchar(n)varchar(n)
float(n)real


假如参数中嵌进有空格或标点标记,则必需用引号将该参数引发来。有关可用的数据范例的更多信息,请拜见数据范例。

n
非负整数,指明所选数据范例的长度。

p
非负整数,指明可保存的最年夜十进制位数,包含小数点右边和右侧的数字。有关更多信息,请拜见decimal和numeric。

s
非负整数,指明小数点右侧的小数数字可保存的最年夜十进制位数,它必需小于或即是精度值。有关更多信息,请拜见本卷中的"decimal和numeric"。
[@nulltype=]null_type

指明用户界说的数据范例处置空值的体例。null_type的数据范例为varchar(8),默许值为NULL,而且必需用单引号引发来(NULL、NOTNULL或NONULL)。假如没有效sp_addtype显式界说null_type,则将其设置为以后默许的为空性。利用GETANSINULL体系函数可断定以后默许的为空性,可使用SET语句或sp_dboption对该为空性举行调剂。应显式界说为空性。



申明null_type参数只为该数据范例界说默许的为空性。假如在创立表的过程当中利用用户界说的数据范例时显式地界说了为空性,那末该为空性优先于已界说好的为空性。有关更多信息,请拜见ALTERTABLE和CREATETABLE。


[@owner=]owner_name

指定新数据范例的创立者或一切者。owner_name的数据范例为sysname。当没有指准时,owner_name为以后用户。

前往代码值
0(乐成)或1(失利)

了局集


正文
用户界说的数据范例称号在数据库中必需是独一的,可是称号分歧的用户界说的数据范例能够有不异的界说。

除非将master作为以后数据库来实行sp_addtype,不然,实行sp_addtype会创立用户界说的数据范例,而且将其增加到某个特定命据库的systypes体系表中。假如想在一切新的用户界说的数据库中都可使用这一用户界说的数据范例,请将其增加到model。在创立了用户数据范例以后,能够在CREATETABLE或ALTERTABLE中利用它,也能够将默许值和划定规矩绑定到用户界说的数据范例。

不克不及利用SQLServertimestamp数据范例来界说用户界说的数据范例。

权限
实行权限默许授与public脚色。

示例
A.创立不同意空值的用户界说数据范例
上面的示例创立一个名为ssn(社会保险号)的用户界说数据范例,它基于SQLServer供应的varchar数据范例。ssn数据范例用于那些保留11位数字的社会保险号(999-99-9999)的列。该列不克不及为NULL。

请注重,varchar(11)由单引号引了起来,这是由于它包括了标点标记(圆括号)。

USEmaster
EXECsp_addtypessn,VARCHAR(11),NOTNULL

B.创立同意空值的用户界说数据范例
上面的示例创立了一个名为birthday的用户界说数据范例(基于datetime),该数据范例同意空值。

USEmaster
EXECsp_addtypebirthday,datetime,NULL

C.创立别的的用户界说的数据范例
上面的示例为国际及国际德律风和传真号码别的创立两个用户界说的数据范例telephone和fax。

USEmaster
EXECsp_addtypetelephone,varchar(24),NOTNULL
EXECsp_addtypefax,varchar(24),NULL

8、sp_droptype
从systypes删除用户界说的数据范例。

语法
sp_droptype[@typename=]type

参数
[@typename=]type

您所具有的用户界说数据范例的称号。type的数据范例为sysname,没有默许值。

前往代码范例
0(乐成)或1(失利)

了局集


正文
假如表或别的数据库工具援用type用户界说数据范例,那末就不克不及撤除这类数据范例。



申明假如在表界说内利用某个用户界说的数据范例,大概将某个划定规矩或默许值绑定到这类数据范例,那末就不克不及撤除它。


权限
实行权限默许授与sysadmin流动服务器脚色、db_ddladmin和db_owner流动数据库脚色成员和数据范例一切者。

示例
上面的示例撤除用户界说的数据范例birthday。



申明该用户界说的数据范例必需已存在,不然上面的示例会前往一条毛病信息。


USEmaster
EXECsp_droptypebirthday

InnoDB数据表的索引,与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。
小女巫 该用户已被删除
沙发
发表于 2015-1-19 16:55:10 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
分手快乐 该用户已被删除
板凳
发表于 2015-1-28 08:53:57 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
深爱那片海 该用户已被删除
地板
发表于 2015-2-5 15:13:00 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
柔情似水 该用户已被删除
5#
发表于 2015-2-12 11:05:10 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
简单生活 该用户已被删除
6#
发表于 2015-3-3 02:57:09 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
莫相离 该用户已被删除
7#
发表于 2015-3-11 09:10:22 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
活着的死人 该用户已被删除
8#
发表于 2015-3-18 02:20:16 | 只看该作者
发几份SQL课件,以飨阅者
若天明 该用户已被删除
9#
 楼主| 发表于 2015-3-25 09:43:26 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表