如何从SQL - ObjectID中批量插入到功能类中!!

4101
2
2011-10-25 02:09
grahamcooke
通过
偶然的因素
抱歉,如果这是在错误的地方,但我不知道把它放在哪里。

我正试图从sqlserver存储过程中填充一个功能类,我正在通过一个web服务从flex中调用。

我之所以这样做而不是执行查询任务,是因为存储过程从SDE之外的源引入了时间数据。我的想法是,我将有一个mapservice,它使用这个特征类连接到一个包含我需要返回的多边形几何形状的特征类。然后,我可以动态地创建一个featurelayer,并使用featurecall来创建它(根据flexapi网站上的GPX示例)。

我遇到的问题是如何创建ObjectID

我找到了这个链接: http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/in_SQL_Server/006z00000017000000/

但显然这只适用于一行。我的存储过程可能会创建800多行:

插入到gisadmin。MonthBookings_Temp

SELECT [objectid], t_gp22_assetnumber, m.site_name, m.VolDate, MAX(Actual_Users) AS [Actual_Users]

从cawdapt。synIRISWarehouse m, gisadmin。OTTERBURN_GP22TRAININGAREAS t

WHERE m.f ility_category collate Latin1_General_CI_AS = '培训区'

并且m.Maximo_Asset_number不为空

AND m.Region = '04'

和m.site_name = @param1

AND MONTH(m.Voldate) = @param2

AND YEAR(m.VolDate) = @param3

和m.Maximo_Asset_Number整理Latin1_General_CI_AS = t.GP22_AssetNumber

和m.region collate Latin1_General_CI_AS = t.RAR_RegionCode

GROUP BY m.site_name, t.GP22_AssetNumber, m.Maximo_Asset_number, m.VolDate

按日期排序

我如何写这个语句,以便我可以为我需要插入的每一行创建唯一的objectid。这是可能的吗,还是我的做法完全错了?

希望有人能帮忙!
标签(2)
2回答
AndrewCorcoran
新贡献者III
>但显然这只适用于1行。我的存储过程可能会创建800多行

也许我误解了你的问题,但我认为这种说法是不正确的。每次调用存储过程获取一个特征类的下一个OBJECTID时,它都会更新存储OBJECTID的表,以便下次调用它时,OBJECTID总是高一个。修改您的存储过程添加(SQL Server):

声明@Object_ID int
声明@Num_IDs int
EXEC dbo。 i51 _get_ids 2,1, @Object_ID输出,@Num_IDs输出

在这里,您将用SDE_table_registry中的功能类的正确值替换'i51',然后在INSERT语句中使用@Object_ID变量。

希望这对你有所帮助。
JoeyTuskan
通过
新的因素

你帮我省了很多麻烦。谢谢你!

此外,还可以设置要插入到表“dbo”中的下一个OBJECTID。I51”,列“last_id”(将I51替换为SDE_table_registry)

0荣誉