|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
提供用于管理、检查、优化数据库操作的管理工具。server|数据|数据库1.1、初级查询语句
1、TRUNCATETABLE[table_name]
删除表中的一切行,而不纪录单个行删除操纵。
TRUNCATETABLE在功效上与不带WHERE子句的DELETE语句不异:两者均删除表中的全体行。但TRUNCATETABLE比DELETE速率快,且利用的体系和事件日记资本少。
DELETE语句每次删除一行,并在事件日记中为所删除的每行纪录一项。TRUNCATETABLE经由过程开释存储表数据所用的数据页来删除数据,而且只在事件日记中纪录页的开释。
新行标识所用的计数值重置为该列的种子。假如想保存标识计数值,请改用DELETE。
关于由FOREIGNKEY束缚援用的表,不克不及利用TRUNCATETABLE,而应利用不带WHERE子句的DELETE语句。因为TRUNCATETABLE不纪录在日记中,以是它不克不及激活触发器。
2、SP_DATABASES
前往在sysdatabases体系表中列出的数据库。
sp_databases在开放式数据库毗连(ODBC)中没有等价的历程。
3、SP_DATATYPE_INFO
sp_datatype_info等价于ODBC中的SQLGetTypeInfo。前往了局按DATA_TYPE排序,再按数据范例映照为响应ODBCSQL数据范例的严密水平举行排序。
4、SP_COLUMNS
前往以后情况中可查询的指定表或视图的列信息。
Sp_columns[table_name]
Or:sp_columns@table_name=[table_name],@column_name=[column_name]
5、SP_TABLES
用法同上,不再雷述。
1.2、存储历程
一切计划优秀的Microsoft®SQLServer™2000使用程序都应该利用存储历程。不管是不是将使用程序的营业逻辑写进存储历程都应云云。乃至连没有营业逻辑组件的尺度Transact-SQL语句,在用参数打包成存储历程后也能取得功能收益。编译进存储历程的Transact-SQL语句在实行时可省往大批的处置。
1.2.1存储历程的计划划定规矩
lCREATEPROCEDURE界说自己可包含除以下CREATE语句之外的任何数目和范例的SQL语句,存储过程当中的恣意中央都不克不及利用以下语句:
CREATEDEFAULT
CREATETRIGGER
CREATEPROCEDURE
CREATEVIEW
CREATERULE
l存储过程当中参数的最年夜数量为2100。
l能够在存储历程内援用一时表。
l假如在存储历程内创立当地一时表,则该一时表仅为该存储历程而存在;加入该存储历程后,一时表即会消散。
1.2.2创立存储历程
示例:
CREATEPROCEDURE[PR_insert_casebrief_NEW]
@p_Casebrief_codeasvarchar(50),@p_Object_idasinteger,@p_Spy_starttimeasdatetime,
@p_Spy_endtimeasdatetime,@p_Casebrief_idasintegerout
as
insertintoCase_brief_telecom(Casebrief_code,object_id,Spy_starttime,Spy_endtime,)
values(@p_Casebrief_code,@p_Object_id,@p_Spy_starttime,@p_Spy_endtime)
select@p_Casebrief_id=@@identity
GO
****p_Casebrief_id为该表的主键,主动增加。
lMicrosoft®SQLServer™2000存储历程以四种体例前往数据:
1、输入参数,既能够前往数据(整型值或字符值等),也能够前往游标变量(游标是能够逐行检索的了局集)。
2、前往代码,一直是整型值。
3、SELECT语句的了局集,这些语句包括在该存储历程内或该存储历程所挪用的任何别的存储历程内。
4、可从存储历程外援用的全局游标。
l当一个存储历程挪用另外一个存储历程时,存储历程就会嵌套。存储历程最多能够嵌套32级。被挪用存储历程入手下手实行时,嵌套级数增添一级;被挪用存储历程完成实行时,嵌套级数削减一级。试图超越32级的最高嵌套级数时,将招致全部存储历程挪用链的失利。正在实行的存储历程确当前嵌套级数存储在@@NESTLEVEL函数中。
l存储过程当中利用游标:
CREATEprocedureXG_Insert_XXX
as
declare@object_idasint
declare@CaseBriefIDasvarchar(4)
declare@number_styleasvarchar(50)
declare@strNumberType2asvarchar(50)
declare@number_codeasvarchar(50)
declare@strSQLasvarchar(1000)
declare@strSQL1asvarchar(255)
declare@brief_codeasvarchar(50)
declare@creatorasvarchar(50)
declare@BHasvarchar(50)
DECLAREOBJECT_CURSORCURSOR
FORSELECTdistinctobject_id,CaseBrief_ID,casebrief_code,table_creatorfromcase_XXX
OPENOBJECT_CURSOR
FETCHNEXTFROMOBJECT_CURSORINTO@object_id,@CaseBriefID,@brief_code,@creator
while(@@FETCH_STATUS=0)
BEGIN
SELECT@BH=FullCodefromView_user_depIDwhereLoginName=+@creator+
print@BH
DECLARENUMBER_CURSORCURSOR
FORSELECTdistinctnumber_style,number_codefromcase_XXXwhereobject_id=@object_id
OPENNUMBER_CURSOR
FETCHNEXTFROMNUMBER_CURSORINTO@number_style,@number_code
while(@@FETCH_STATUS=0)
BEGIN
set@strSQL=insertintoCASE_XXX(CASEBRIEF_ID,NUM_TYPE,NUMBER)values(+@CaseBriefID+,+@number_style+,+@number_code+)
exec(@strSQL)
FETCHNEXTFROMNUMBER_CURSORINTO@number_style,@number_code
END
CLOSENUMBER_CURSOR
DEALLOCATENUMBER_CURSOR
FETCHNEXTFROMOBJECT_CURSORINTO@object_id,@CaseBriefID,@brief_code,@creator
END
CLOSEOBJECT_CURSOR
DEALLOCATEOBJECT_CURSOR
GO
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。 |
|