GVKun编程网logo

获取sqlserver数据库中所有库、表、字段名的方法(获取sql语句中所有表名)

4

对于想了解获取sqlserver数据库中所有库、表、字段名的方法的读者,本文将提供新的信息,我们将详细介绍获取sql语句中所有表名,并且为您提供关于C#如何获取SQLServer中指定数据表的所有字段

对于想了解获取sqlserver数据库中所有库、表、字段名的方法的读者,本文将提供新的信息,我们将详细介绍获取sql语句中所有表名,并且为您提供关于C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型、MSSQL 获取数据库、表、字段信息语句、MSSqlServer中用命令查询所有数据库、表、表中列的详细信息、mysql 查看、修改 数据库、表、字段编码的有价值信息。

本文目录一览:

获取sqlserver数据库中所有库、表、字段名的方法(获取sql语句中所有表名)

获取sqlserver数据库中所有库、表、字段名的方法(获取sql语句中所有表名)

获取sqlserver数据库中所有库、表、字段名的方法
2009年03月12日 星期四 下午 12:51
1.获取所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
2.获取所有表名:
SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')

 

 

 

access :
如果表存在,如何得到这个表?

SELECT *
FROM MSysObjects where name='ExamResultTime ' and type=1 and flags=0

//得到该数据库中所有的表名

SELECT name FROM MSysObjects where type=1 and flags=0

C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

如何获取指定数据表的所有字段名和字段类型。SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, String[])的第二个参数中。

定义如下:

public override DataTable GetSchema(
    string collectionName,
    string[] restrictionValues
)

参数collectionName指定要返回的架构的名称,取值为静态类 SqlClientMetaDataCollectionNames的成员,如果要取列信息,则取值为SqlClientMetaDataCollectionNames.Columns。

关于SqlClientMetaDataCollectionNames类成员的详细信息参见:https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlclientmetadatacollectionnames_fields(v=vs.100).aspx

参数restrictionValues为请求架构的一组限制值,对于不同的架构集类型,有不同的写法。要具体了解,可以调用GetSchema("Restrictions") 方法。

针对SQL Server 数据库,restrictionValues的长度为4,其中restrictionValues[0]为Catalog(数据库名),restrictionValues[1]为Owner(所有者),restrictionValues[2]为Table(表名),restrictionValues[3]为Column(列名)。

我们要查询某张表中的列名等信息,则可以通过设置restrictionValues[2]="SomeTableName"来实现。

实现代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Data.SqlClient;
 5 
 6 namespace scratchline.cn
 7 {
 8     public struct Field
 9     {
10         public string Name;
11         public string Type;
12     }
13 
14     public class scratchline
15     {
16         public List<Field> GetFileds(string connectionString, string tableName)
17         {
18             List<Field> _Fields = new List<Field>();
19             SqlConnection _Connection = new SqlConnection(connectionString);
20             try
21             {
22                 _Connection.Open();
23 
24                 string[] restrictionValues = new string[4];
25                 restrictionValues[0] = null; // Catalog
26                 restrictionValues[1] = null; // Owner
27                 restrictionValues[2] = tableName; // Table
28                 restrictionValues[3] = null; // Column
29 
30                 using (DataTable dt = _Connection.GetSchema(SqlClientMetaDataCollectionNames.Columns, restrictionValues))
31                 {
32                     foreach (DataRow dr in dt.Rows)
33                     {
34                         Field field;
35                         field.Name = dr["column_name"].ToString();
36                         field.Type = dr["data_type"].ToString();
37                         _Fields.Add(field);
38                     }
39                 }
40             }
41             catch (Exception ex)
42             {
43                 throw ex;
44             }
45             finally
46             {
47                 _Connection.Dispose();
48             }
49 
50             return _Fields;
51         }
52     }
53 }
View Code

总结:SqlConnection.GetSchema方法用于获取数据库架构信息,通过不同参数的组合可实现各种数据架构信息的获取功能。

MSSQL 获取数据库、表、字段信息语句

MSSQL 获取数据库、表、字段信息语句

 

 

--获取所有数据库名称
SELECT Name FROM Master..SysDatabases ORDER BY Name


--获取库里所有表名
SELECT * FROM SysObjects Where XType=''U''
SELECT Name FROM SysObjects Where XType=''U'' and (Name not like ''sys%'' and Name not like ''MSp%'')


--获取库里表的主键
SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME like ''PK_dbo%'' order by TABLE_NAME


--获取库里所有表主键id及类型
SELECT tb.name tableName,t1.name columnName,t5.name jdbcType,case when  t4.id is null then ''false'' else ''true'' end as pkColumn,
    case when  COLUMNPROPERTY( t1.id,t1.name,''IsIdentity'') = 1 then ''true'' else ''false'' end as  autoAdd
    ,cast(isnull(t6.value,'''') as varchar(2000)) descr
FROM SYSCOLUMNS t1
left join SYSOBJECTS t2 on  t2.parent_obj = t1.id  AND t2.xtype = ''PK''
left join SYSINDEXES t3 on  t3.id = t1.id  and t2.name = t3.name 
left join SYSINDEXKEYS t4 on t1.colid = t4.colid and t4.id = t1.id and t4.indid = t3.indid
left join systypes  t5 on  t1.xtype=t5.xtype
left join sys.extended_properties t6   on  t1.id=t6.major_id   and   t1.colid=t6.minor_id
left join SYSOBJECTS tb  on  tb.id=t1.id
where t5.name<>''sysname'' and tb.xtype = ''U'' and t4.id is not null
order by tb.name, t1.colid asc

 

MSSqlServer中用命令查询所有数据库、表、表中列的详细信息

MSSqlServer中用命令查询所有数据库、表、表中列的详细信息


MSsqlServer中用命令查询所有数据库、表、表中列的详细信息

/*1.查询sqlSERVER中的所有数据库*/

use master

go

select * from sysdatabases where dbid>4/*where条件用来去掉系统数据库*/

go

/*2.查询sqlSERVER中的所有数据库(存储过程)*/

exec sp_helpdb

/*3.查询指定数据库中的表*/

use 数据库名

go

select * from sysobjects where xtype='u'/*where条件用来去掉系统表*/

go

/*4.显示当前数据库所有表的详细信息*/

use 数据库名

go

SELECT

表名=case when a.colorder=1 then d.name else '' end,

字段序号=a.colorder,

字段名=a.name,

标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then '√'else '' end,

主键=case when exists

(

     SELECT 1 FROM sysobjects where xtype='PK' and name in

     (

         SELECT name FROM sysindexes WHERE indid in

         (  

              SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid

         )

     )

)

then '√' else '' end,

类型=b.name,

占用字节数=a.length,

长度=COLUMNPROPERTY(a.id,'PRECISION'),

小数位数=isnull(COLUMNPROPERTY(a.id,'Scale'),0),

允许空=case when a.isnullable=1 then '√' else '' end,

默认值=isnull(e.text,''),

字段说明=isnull(g.[value],'')/*此列在绑定GridView时,如选择动态生成列,始终无法绑定.手动指定列后正常,原因不详*/

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

//sql2005中用left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id

left join sysproperties g on a.id=g.id and a.colid=g.smallid

where   d.name='要查询的表'

order by a.id,a.colorder

go

#Sql


[删除字段]
alter table tb_commonLog --表名
        drop
        column l_test,--去掉字段1
        column l_test2,--去掉字段2
        constraint pk_name --去掉主键
go

mysql 查看、修改 数据库、表、字段编码

mysql 查看、修改 数据库、表、字段编码

1、查看数据表中字符集设置

mysql> SHOW CREATE TABLE tablename\G

2、修改 MYSQL 表的字符集

mysql> ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;


关于获取sqlserver数据库中所有库、表、字段名的方法获取sql语句中所有表名的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型、MSSQL 获取数据库、表、字段信息语句、MSSqlServer中用命令查询所有数据库、表、表中列的详细信息、mysql 查看、修改 数据库、表、字段编码的相关信息,请在本站寻找。

本文标签: