查看数据库中表和列名数据类型

 

可以从数据库中的系统表 sysobjects 得到想要的数据表信息,具体SQL语句如下:

 

查看数据库中表名:

 

select name from sysobjects where type = 'U';

由于系统表sysobjects保存的都是数据库对象,其中type表示各种对象的类型,具体包括:

U = 用户表

S = 系统表

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K

RF = 复制筛选存储过程

TF = 表函数

TR = 触发器

UQ = UNIQUE 约束(类型是 K

V = 视图

X = 扩展存储过程及相关的对象信息。

 

sql server 2000 中加载驱动和URL路径的语句是

String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433; databasename=test";

sql server 2005 中加载驱动和url的语句则为

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://localhost:1433; databasename=test";

 

查询列名:

select name from syscolumns where id=object_id('dd_Stu') and objectproperty(id,'IsUserTable')=1; 

或者

sp_columns dd_Stu;

 

Java中查询表中字段、类型、长度等信息:

SELECT
字段名=a.Name,
类型=B.Name,
长度=COLUMNPROPERTY(a.ID,a.Name,'PRECISION'),
字段说明=IsNull(G.[value],'')
FROM syscolumns a
left join systypes B On a.Xtype=B.xusertype
left join sysproperties G On a.ID=G.ID And a.colid=G.smallid
Where a.id=object_id('要查询的表')    --如果只查询指定表,加上此条件
order by a.ID,a.colorder

 ASP.net中表的相关操作:

--删除主键,只有删除主键后才能删除主键对应的列
alter table worklog drop constraint PK_worklog

--创建主键
alter table worklog add constraint PK_worklog primary key(employeeNo,logNo)

--查询主键
select * from sysobjects where xtype='PK'

--创建外键,外键也必须制定字段 如,foreign key(employeeNo)
alter table worklog add constraint FK_worklog_employee foreign key(employeeNo) references employee(employeeNo)

--查询外键
select * from sysobjects where xtype='F'

--查询表
select * from sysobjects where xtype='U'
或者
select * from sysobjects where sysobjects.type='u'
nameidxtypeuidinfostatusbase_schema_verreplinfoparent_objcrdateftcatidschema_verstats_schema_vertypeuserstatsysstatindexdelrefdateversiondeltriginstrigupdtrigseltrigcategorycache
worklog357576312U1000002014/1/21 12:09:19000U1302014/1/21 12:09:190000000
--查询表信息
sp_help employee
NameOwnerTypeCreated_datetime
employeedbouser table2014/1/25 13:46:56
--查询字段信息表
select * from sys.extended_properties
classclass_descmajor_idminor_idname
1OBJECT_OR_COLUMN13655799030microsoft_database_tools_support
select * from syscolumns --表字段信息表  
nameidxtypetypestatxusertypelengthxprecxscalecolidxoffsetbitposreservedcolstatcdefaultdomainnumbercolorderoffsetcollationidlanguagestatustypeusertypeprintfmtprecscaleiscomputedisoutparamisnullablecollation
rowsetid4127112781901000000010000630 190000 
rowsetcolid45615641002000000020000567 100000 
select * from sysobjects where sysobjects.type='s' --数据库所有的系统表的信息  
select * from syscomments --所有的触发器的东西  

--查询表名、字段序号、字段名、标识、主键、类型、占用字节数、长度、小数位数、允许空、默认值
SELECT   
(case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空  
     a.colorder as 字段序号,  
     a.name as 字段名,  
     (case when COLUMNPROPERTY( a.id,a.name, 'IsIdentity' )=1 then '√' else '' end) as 标识,  
     (case when (SELECT count(*) FROM sysobjects--查询主键  
                     WHERE (name in   
                             (SELECT name FROM sysindexes   
                             WHERE (id = a.id)   AND (indid in   
                                     (SELECT indid FROM sysindexkeys  
                                       WHERE (id = a.id) AND (colid in   
                                         (SELECT colid FROM syscolumns  
                                         WHERE (id = a.id) AND (name = a.name))  
                         )))))   
         AND (xtype = 'PK' ))>0 then '√' else '' end) as 主键,--查询主键END  
b.name as 类型,  
a.length as 占用字节数,  
COLUMNPROPERTY(a.id,a.name,'PRECISION' ) as    长度,  
isnull(COLUMNPROPERTY(a.id,a.name,'Scale' ),0) as 小数位数,  
(case when a.isnullable=1 then '√' else '' end) as 允许空,  
isnull(e.text,'' ) as 默认值,  
isnull(g.[value],'' ) AS 字段说明   
FROM syscolumns a left join systypes b   
on a.xtype=b.xusertype  
inner join sysobjects d   
on a.id=d.id and d.xtype='U' and d.name<> 'dtproperties'   
left join syscomments e  
on a.cdefault=e.id  
left join sys.extended_properties g  
on a.id=g.major_id AND a.colid = g.minor_id   
     where d.name='employee' --所要查询的表  
order by a.id,a.colorder  
表名字段序号字段名标识主键类型占用字节数长度小数位数允许空默认值
employee1employeeNo nvarchar100500  
 2employeeName  nchar40200 
 3employeePwd  nchar40200 
 4employeeEmail  nchar80400 
 5employeeAuthority  char110 
 6employeePhone  nvarchar22110 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值