|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
越来越多的开发者将继续选择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.[name]ASTableName,a.fkey
FROMsysforeignkeysaINNERJOINsysobjectsbona.fkeyid=b.[id]INNERJOINsysobjectscona.rkeyid=c.[id]
WHEREc.[name]=@PTableName
OPENcursorFKTable
FETCHNEXTFROMcursorFKTableINTO@TableName,@FKey
WHILE@@FETCH_STATUS=0
BEGIN
SELECT@FKName=a.[name]FROMsyscolumnsaINNERjoinsysobjectsbONa.[id]=b.[id]WHEREb.[name]=@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的利润率与企业内部系统相比较。 |
|