对于想了解获取sqlserver数据库中所有库、表、字段名的方法的读者,本文将提供新的信息,我们将详细介绍获取sql语句中所有表名,并且为您提供关于C#如何获取SQLServer中指定数据表的所有字段
对于想了解获取sqlserver数据库中所有库、表、字段名的方法的读者,本文将提供新的信息,我们将详细介绍获取sql语句中所有表名,并且为您提供关于C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型、MSSQL 获取数据库、表、字段信息语句、MSSqlServer中用命令查询所有数据库、表、表中列的详细信息、mysql 查看、修改 数据库、表、字段编码的有价值信息。
本文目录一览:- 获取sqlserver数据库中所有库、表、字段名的方法(获取sql语句中所有表名)
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型
- MSSQL 获取数据库、表、字段信息语句
- MSSqlServer中用命令查询所有数据库、表、表中列的详细信息
- mysql 查看、修改 数据库、表、字段编码
获取sqlserver数据库中所有库、表、字段名的方法(获取sql语句中所有表名)
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 中指定数据表的所有字段名和字段类型
如何获取指定数据表的所有字段名和字段类型。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 }
总结:SqlConnection.GetSchema方法用于获取数据库架构信息,通过不同参数的组合可实现各种数据架构信息的获取功能。
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中用命令查询所有数据库、表、表中列的详细信息
/*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
[删除字段] alter table tb_commonLog --表名 drop column l_test,--去掉字段1 column l_test2,--去掉字段2 constraint pk_name --去掉主键 go
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 查看、修改 数据库、表、字段编码的相关信息,请在本站寻找。
本文标签: