首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于MsSQL存储过程语法的疑点

2013-12-06 
关于MsSQL存储过程语法的疑问存储过程如下:USE [Flowmaster]GO/****** Object:StoredProcedure [dbo].[dt_

关于MsSQL存储过程语法的疑问
存储过程如下:
USE [Flowmaster]
GO
/****** Object:  StoredProcedure [dbo].[dt_adduserobject]    Script Date: 12/05/2013 11:40:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**Add an object to the dtproperties table
*/
ALTER procedure [dbo].[dt_adduserobject]
as
set nocount on
/*
** Create the user object if it does not exist already
*/
[color=#FF0000]begin transaction
insert dbo.dtproperties (property) VALUES ('DtgSchemaOBJECT')
update dbo.dtproperties set objectid=@@identity 
where id=@@identity and property='DtgSchemaOBJECT'
commit
return @@identity[/color]
求解释红色字体的几句的意思。dbo.dtproperties是什么意思?'DtgSchemaOBJECT'是什么意思?objectid,id,以及property又是什么呢?以及以上几者之间的关系。我是初学者,请讲的详细一些,谢谢!如果懒得敲给个链接我自己看也行,谢谢!
[解决办法]

引用:
begin transaction
insert dbo.dtproperties (property) VALUES ('DtgSchemaOBJECT')
update dbo.dtproperties set objectid=@@identity 
where id=@@identity and property='DtgSchemaOBJECT'
commit
return @@identity


其实这个就是一个插入,然后是更新操作。

首先,把这个值'DtgSchemaOBJECT' 插入到表dtproperties的 字段property 中。

然后,是update表dtproperties的objectid字段,你的dtproperties表,应该是包含了一个identity,也就是自增列,当上面插入了记录后,@@identity中就保存了,插入到你的自增列中的值,

于是,通过条件where id=@@identity and property='DtgSchemaOBJECT',来找到这条刚刚插入的记录,更新objectid为@@identity 的值,不过这个update语句完全可以写成:

update dbo.dtproperties set objectid=id 
where id=@@identity and property='DtgSchemaOBJECT'
[解决办法]
引用:
存储过程如下:
USE [Flowmaster]
GO
/****** Object:  StoredProcedure [dbo].[dt_adduserobject]    Script Date: 12/05/2013 11:40:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
**Add an object to the dtproperties table
*/
ALTER procedure [dbo].[dt_adduserobject]
as
set nocount on
/*
** Create the user object if it does not exist already
*/
[color=#FF0000]begin transaction
insert dbo.dtproperties (property) VALUES ('DtgSchemaOBJECT')
update dbo.dtproperties set objectid=@@identity 
where id=@@identity and property='DtgSchemaOBJECT'
commit
return @@identity[/color]
求解释红色字体的几句的意思。dbo.dtproperties是什么意思?'DtgSchemaOBJECT'是什么意思?objectid,id,以及property又是什么呢?以及以上几者之间的关系。我是初学者,请讲的详细一些,谢谢!如果懒得敲给个链接我自己看也行,谢谢!

dbo.dtproperties是什么意思?表名,你看看你的库是否有这个表
'DtgSchemaOBJECT'是什么意思?这个表上的property列上,你将要插入的值
objectid,id,以及property又是什么呢?这是dbo.dtproperties表上的三个列。用来查找复合条件的数据。整个逻辑是先插入一个值为'DtgSchemaOBJECT' 的数据到dbo.dtproperties表上property的列,然后获取这个表的自增ID,用@@identity函数获取,然后把这个数据的objectid也用@@identity函数填充

热点排行