在sql server 2008中建立数据对象(表、视图、存储过程、函数),可以通过sys.objects获取它们的ID,以便用ID来调用它们,但是发现表结构改变后(向表中间添加新字段),ID会变化,如果是删除或者添加在表的末尾,ID就不会改变。
目前我想在数据对象一建立后,获得固定的ID,即便以后表结构有所变化,ID也不便,有方法实现吗?
目前我想在数据对象一建立后,获得固定的ID,即便以后表结构有所变化,ID也不便,有方法实现吗?
解决方案 »
- [求助]搜索二表不匹配的记录
- 请教SQL语句
- 将一段中文大文本直接复制到企业管理器某个表的网格中,该字段为TEXT字段,总是更新失败,为什么?
- SQL Server2005怎么样安装在windows XP上面?
- 一条SQL语句能搞定吗?
- 关于一个中奖奖金排行榜的sql问题
- 高手请指点,急急急!!!!
- 如何在SQL上寫Trigger呢??
- 有谁知道纯dos 下如何连接sqlserver2000???(高分1000分求助!!)在线等待急急急急急
- 表经过Delete或Insert或Update操作后,试问如何知道该表到底进行哪种操作(Delete还是Insert还是Update?????)
- 用select where in语句查询结果不按条件排序
- 实现这种功能的行转列的sql语句
如果像你说的,一修改结构,ID就变了,那你去记它干吗?
调用这些对象都是直接使用名称就是了,用ID干吗?
实在不行你可以这样:select * from dbo.sysobjects where id = object_id(N'[架构名].[对象名]')
谢谢大家,我先回答2楼的问题:
我们之所以没有直接调用数据对象,而采用代码是因为根据公司内部管理流程的需求,我们对每个流程用到了哪些表和视图进行统计和管理,所以就直接抓了它们的id代码,目前是想实现即便修改了表和视图的名字或者结构,而id不变,方便管理。
由于数据库内的系统视图sys.objects的id是无法固定的,后来我自己写了一个函数通过规则把表名或视图名转换成数字。
你说的object_id 和我说的id是同一个,
都是系统自带的,而且不是固定的。
表结构一改变,id就会变的。