MYSQL网页编程之判别表中的数据是不是被其他表中利用过!!...
越来越多的开发者将继续选择MySQL。Evans的总裁JohnAndrews表示,MySQL学习教程用户对MySQL和其他开源数据库的评价正在赶上甚至超过很多专有商业数据库软件。数据CREATEPROCEDUREdbo.SystemFuntion_HasBeUsed
@PTableNameVarchar(100),--要反省数据是不是被利用的主键表称号
@PKValueINT,--主键字段的值
@IsUsedINTOUTPUT
AS
DECLARE@TableNameVARCHAR(100)--外键表的称号
DECLARE@FKNameVARCHAR(100)--外键字段称号
DECLARE@FKeyINT
DECLARE@SQLVARCHAR(8000)
SET@sql=SELECT0ascolCountinto#tempTableColUNION
DECLAREcursorFKTableCURSORFOR
SELECTb.ASTableName,a.fkey
FROMsysforeignkeysaINNERJOINsysobjectsbona.fkeyid=b.INNERJOINsysobjectscona.rkeyid=c.
WHEREc.=@PTableName
OPENcursorFKTable
FETCHNEXTFROMcursorFKTableINTO@TableName,@FKey
WHILE@@FETCH_STATUS=0
BEGIN
SELECT@FKName=a.FROMsyscolumnsaINNERjoinsysobjectsbONa.=b.WHEREb.=@TableNameand@FKey=a.colid
SET@sql=@sql+SELECTCASEWHENCOUNT(*)=0THEN0ELSE1ENDFROM+@TableName+WHERE+@FKName+=+CAST(@PKValueASVARCHAR(100))
SET@sql=@sql+UNION
FETCHNEXTFROMcursorFKTableINTO@TableName,@FKey
END
CLOSEcursorFKTable
DEALLOCATEcursorFKTable
SELECT@sql=left(@sql,len(@sql)-6)
exec(@sql)
SELECT@IsUsed=@@ROWCOUNT-1
GO
利用办法:
/***********猎取以后主键值是不是被其他表利用过(@HasPKValueBeUsedasHasPKValueBeUsed)*************/
DECLARE@HasPKValueBeUsedINT
EXECUTESystemFuntion_HasBeUsedTLSubjectPlan,@SubjectPlanID,@IsUsed=@HasPKValueBeUsedOUTPUT
/*******************************************************************************/
尽管DBaaS模式有缺点,但它还是适合某些客户群体,这为解决方案提供商提供了新的商机。鉴于云服务的增长,解决方案提供商除了拥抱这些技术还有什么选择呢?如果他们不这样做,他们就会冒着被竞争对手击败的风险。但他们不能只想到如何把DBaaS的利润率与企业内部系统相比较。 大家注意一点。如下面的例子: where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。 发几份SQL课件,以飨阅者 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。 比如日志传送、比如集群。。。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
页:
[1]