数据库内如何区分一个对象是存储过程还是函数还表?
求区分:存储过程,函数,表?
[解决办法]
xtype
物件型。可以是些物件型之一:
C = CHECK 件束
D = DEFAULT 件束
F = FOREIGN KEY 件束
L =
FN = 存量函IF = 嵌料表函P = 存程序
PK = PRIMARY KEY 件束 (型 K)
RF = 件存程序
S = 系料表
TF = 料表函TR = 程序
U = 使用者料表
UQ = UNIQUE 件束 (型 K)
V = 表
X = 延伸存程式
[解决办法]
select xtype from sysobjects where id = object_id( '象名 ')
[解决办法]
---鱼老大学习了,偶是你的粉丝啊
/*呵呵,先通过echiynn() 的语句查出再与鱼老大的对比,要是熟练就一下可以看出
还有一个很笨的方法
假如想判断a是 存储过程、函数、表, LZ下面方法针对你的问题不实用一般用到前提
知道它是表或者存储过程...,常用于数据库的升级用以下脚本*/
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[a] ') and OBJECTPROPERTY(id, N 'IsProcedure ') = 1)
---drop procedure [dbo].[a]
print '是存储过程 '
GO
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[a] ') and xtype in (N 'FN ', N 'IF ', N 'TF '))
---drop function [dbo].[a]
print '是函数 '
GO
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[a] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
---drop table [dbo].[a]
print '是表 '
GO
[解决办法]
object_id(N '[dbo].[a] '
这句怎么理解?