分手快乐 发表于 2015-1-16 22:39:45

MSSQL网站制作之SQL Server联机丛书:检察存储历程

mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功server|存储历程
几个体系存储历程用体系表供应有关存储历程的信息。利用这些存储历程能够:检察用于创立存储历程的Transact-SQL语句。这关于没有效于创立存储历程的Transact-SQL剧本文件的用户是很有效的。
取得有关存储历程的信息(如存储历程的一切者、创立工夫及其参数)。
列出指定存储历程所利用的工具及利用指定存储历程的历程。此信息可用来辨认那些受数据库中某个工具的变动或删除影响的历程。检察存储历程的界说sp_helptext
显现划定规矩、默许值、未加密的存储历程、用户界说函数、触发器或视图的文本。
语法
sp_helptext[@objname=]name
参数
[@objname=]name

工具的称号,将显现该工具的界说信息。工具必需在以后数据库中。name的数据范例为nvarchar(776),没有默许值。
前往代码值
0(乐成)或1(失利)
了局集
列名数据范例形貌Textnvarchar(255)工具界说文本

正文
sp_helptext在多个行中显现用来创立工具的文本,个中每行有Transact-SQL界说的255个字符。这些界说只驻留在以后数据库的syscomments表的文本中。
权限
实行权限默许授与public脚色。
示例
上面的示例显现employee_insupd触发器的文本,该触发器在数据库pubs中。

USEpubsEXECsp_helptextemployee_insupd



检察有关存储历程的信息sp_help
呈报有关数据库工具(sysobjects表中列出的任何工具)、用户界说数据范例或Microsoft®SQLServer™所供应的数据范例的信息。
语法
sp_help[[@objname=]name]
参数
[@objname=]name

是sysobjects中的恣意工具的称号,大概是在systypes表中任何用户界说数据范例的称号。Name的数据范例为nvarchar(776),默许值为NULL。不克不及利用数据库称号。
前往代码值
0(乐成)或1(失利)
了局集
前往的了局集取决于name是不是已指定、什么时候指定和它是何种数据库工具等要素。假如实行不带参数的sp_help,则前往以后数据库中现有的一切范例工具的择要信息。列名数据范例形貌Namenvarchar(128)工具名Ownernvarchar(128)工具一切者Object_typenvarchar(31)工具范例
假如name是SQLServer数据范例或用户界说数据范例,则sp_help前往此了局集。列名数据范例形貌Type_namenvarchar(128)数据范例称号。Storage_typenvarchar(128)SQLServer范例称号。Lengthsmallint数据范例的物理长度(以字节为单元)。Precint精度(总的数字位数)。Scaleint小数点右侧的数字位数。Nullablevarchar(35)指明是不是同意NULL值:是或否。Default_namenvarchar(128)绑定到该范例的默许值称号。假如没有绑定默许值,则为NULL。Rule_namenvarchar(128)绑定到该范例的划定规矩称号。假如没有绑定默许值,则为NULL。Collationsysname数据范例的排序划定规矩。假如长短字符数据范例,则为NULL。
假如name是恣意数据库工具(而不是数据范例),那末sp_help将前往此了局集,和基于指定工具范例的别的了局集。列名数据范例形貌Namenvarchar(128)表名Ownernvarchar(128)表的一切者Typenvarchar(31)表的范例Created_datetimedatetime创立的日期表

依据指定的数据库工具,sp_help前往别的了局集。

假如name是体系表、用户表大概视图,则sp_help前往这些了局集(破例,关于视图,不前往形貌数据文件在文件组中所处地位的了局集)。
按列工具前往别的了局集:列名数据范例形貌Column_namenvarchar(128)列名。Typenvarchar(128)列数据范例。Computedvarchar(35)指出是不是盘算了在列中的值:(是或否)。Lengthint以字节为单元的列长度。Precchar(5)列精度。Scalechar(5)列数值局限。Nullablevarchar(35)指出在列中是不是同意NULL值:是或否。TrimTrailingBlanksvarchar(35)剪裁跟随空格(是或否)。FixedLenNullInSourcevarchar(35)只是为了向后兼容。Collationsysname列的排序划定规矩。假如长短字符数据范例,则为NULL。
按标识列前往的别的了局集:列名数据范例形貌Identitynvarchar(128)其数据范例被声明为标识的列名。Seednumeric标识列的肇端值。Incrementnumeric此列中的值所利用的增量。NotForReplicationint当反复登录(比方sqlrepl)试图在表中拔出数据时,没法强迫利用IDENTITY属性:
1=True
0=False
按列前往的别的了局集:列名数据范例形貌RowGuidColsysname全局独一标识符列的称号。
按文件组前往的别的了局集:列名数据范例形貌Data_located_on_filegroupnvarchar(128)数据地点的文件组(次要文件组、主要文件组或事件日记)。
按索引前往的别的了局集:列名数据范例形貌index_namesysname索引名。index_descriptionvarchar(210)索引的形貌。index_keysnvarchar(2078)天生索引地点列的列名。
按束缚前往的别的了局集列名数据范例形貌constrain_typenvarchar(146)束缚的范例。constrain_namenvarchar(128)束缚名。delete_actionnvarchar(9)指明DELETE操纵是:无操纵、层叠或暂缺。
(仅合用于FOREIGNKEY束缚。)
update_actionnvarchar(9)指明UPDATE操纵是:无操纵、层叠或暂缺。
(仅合用于FOREIGNKEY束缚。)
status_enabledvarchar(8)指明是不是启用束缚:启用、禁用或暂缺。(仅合用于CHECK和FOREIGNKEY束缚。)Status_for_replicationvarchar(19)指明束缚是不是用于复制。(仅合用于CHECK和FOREIGNKEY束缚。)constrain_keysnvarchar(2078)组成束缚的列名。大概(关于默许值和划定规矩而言)指界说默许值或划定规矩的文本。
按援用工具前往的别的了局集:列名数据范例形貌Tableisreferencedbynvarchar(516)辨认援用表的别的数据库工具。
假如name是体系存储历程或扩大存储历程,那末sp_help将前往此了局集。列名数据范例形貌Parameter_namenvarchar(128)存储历程参数名。Typenvarchar(128)存储历程参数的数据范例。Lengthsmallint最年夜物理存储长度(以字节为单元)。Precint精度(总的数字位数)。Scaleint小数点右侧的数字个数。Param_ordersmallint参数的按次。
正文
sp_help历程仅在以后数据库中查找工具。

当没有指定name时,sp_helptrigger列出以后数据库中一切工具的称号、一切者和工具范例。sp_helptrigger供应有关触发器的信息。
权限
实行权限默许授与public脚色。
示例A.前往有关一切工具的信息
上面的示例列出有关sysobjects中每一个工具的信息。

USEmasterEXECsp_help
B.前往有关单个工具的信息
上面的示例显现有关publishers表的信息。

USEpubsEXECsp_helppublishers
检察存储历程的相干性
sp_depends

显现有关数据库工具相干性的信息(比方,依附表或视图的视图和历程,和视图或历程所依附的表和视图)。
不呈报对以后数据库之外工具的援用。
语法
sp_depends[@objname=]object
参数
[@objname=]object

被反省相干性的数据库工具。工具能够是表、视图、存储历程或触发器。Object的数据范例为varchar(776),没有默许值。
前往代码值
0(乐成)或1(失利)
了局集
sp_depends显现两个了局集。

上面的了局集显现object所依附的工具。
列名数据范例形貌namenvarchar(40)存在相干性的项目称号。typenvarchar(16)项目范例。updatednvarchar(7)是不是更新项目。selectednvarchar(8)项目是不是用于SELECT语句。columnsysname存在相干性的列或参数。

上面的了局集显现依附object的工具。
列名数据范例形貌namenvarchar(40)存在相干性的项目称号。typenvarchar(16)项目范例。
正文
若一个工具援用另外一个工具,则以为前者依附后者。sp_depends经由过程检察sysdepends表断定相干性。
权限
实行权限默许授与public脚色。
示例
上面的示例列出依附Customers表的数据库工具。

USENorthwindEXECsp_dependsCustomers


检察关于扩大存储历程的信息

sp_helpextendedproc
显现以后界说的扩大存储历程,和此历程(函数)所属静态链接库的称号。
语法
sp_helpextendedproc[[@funcname=]procedure]
参数
[@funcname=]procedure

是要显现其信息的扩大存储历程的称号。procedure的数据范例为sysname,默许值为NULL。
前往代码值
0(乐成)或1(失利)
了局集列名数据范例形貌namesysname扩大存储历程的称号。dllnvarchar(255)静态链接库的称号。
正文
指定procedure时,sp_helpextendedproc呈报指定扩大存储历程的信息。不供应procedure时,
sp_helpextendedproc前往全体扩大存储历程的称号,和每一个扩大存储历程所属的DLL称号。
权限
实行权限默许授与public脚色。
示例A.呈报一切扩大存储历程的匡助
上面的示例呈报一切扩大存储历程的信息。

USEmasterEXECsp_helpextendedproc
B.呈报单个扩大存储历程的匡助
上面的示例呈报xp_cmdshell扩大存储历程的信息。

USEmasterEXECsp_helpextendedprocxp_cmdshell

转自:http://goaler.xicp.net/ShowLog.asp?ID=517


一个语句分成两个event(实际上不止,其他可以忽略),一个table_mapevent和一个Rows_log_event。Table_mapevent是一样的,主要看Rows_log_event。

蒙在股里 发表于 2015-1-19 20:51:12

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

爱飞 发表于 2015-1-28 10:31:37

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

简单生活 发表于 2015-2-13 11:43:08

每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。

再见西城 发表于 2015-3-3 20:54:09

原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!

只想知道 发表于 2015-3-11 13:38:27

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

乐观 发表于 2015-3-18 14:41:45

我个人认为就是孜孜不懈的学习

冷月葬花魂 发表于 2015-3-25 23:53:15

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
页: [1]
查看完整版本: MSSQL网站制作之SQL Server联机丛书:检察存储历程