用SQL脚本读取Excel中的sheet数量及名称

合集下载

sql查询数据库中所有表名

sql查询数据库中所有表名

sql查询数据库中所有表名查询⾥所有表名和字段名的语句SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'SELECT * FROM INFORMATION_SCHEMA.TABLES查询表的所有字段名:SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEMA.VIEWSSELECT * FROM INFORMATION_SCHEMA.COLUMNS查看所有表名:SELECT TABLE_NAME FROM USER_TABLESACCESS 查看所有表名:SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0MSYSOBJECTS 是系统对象,默认情况是隐藏的。

通过⼯具、选项、视图、显⽰、系统对象可以使之显⽰出来。

字段类型中⽂说明限制条件其它说明CHAR固定长度字符串最⼤长度2000 bytesVARCHAR2可变长度的字符串最⼤长度4000 bytes 可做索引的最⼤长度749NCHAR根据字符集⽽定的固定长度字符串最⼤长度2000 bytes NVARCHAR2根据字符集⽽定的可变长度字符串最⼤长度4000 bytesDATE⽇期(⽇- ⽉- 年)DD-MM-YY (HH-MI-SS )经过严格,⽆千⾍问题LONG超长字符串最⼤长度 2G (231 -1 )⾜够存储⼤部头著作RAW固定长度的⼆进制数据最⼤长度2000 bytes 可存放多媒体图象声⾳等LONG RAW可变长度的⼆进制数据最⼤长度 2G同上BLOB⼆进制数据最⼤长度 4GCLOB字符数据最⼤长度 4GNCLOB根据字符集⽽定的字符数据最⼤长度 4GBFILE存放在数据库外的⼆进制数据最⼤长度 4GROWID数据表中记录的唯⼀⾏号10 bytes ********.****.**** 格式,* 为0 或1NROWID⼆进制数据表中记录的唯⼀⾏号最⼤长度4000 bytesNUMBER(P,S)数字类型P 为整数位,S 为⼩数位DECIMAL(P,S)数字类型P 为整数位,S 为⼩数位INTEGER整数类型⼩的整数FLOAT浮点数类型NUMBER(38) ,双精度REAL实数类型NUMBER(63) ,精度更⾼。

使用SQL语句如何对Excel工作表数据进行查询

使用SQL语句如何对Excel工作表数据进行查询

使用SQL语句如何对Excel工作表数据进行查询SQL语句是一种标准的数据库语言,其可以在任何关系型数据库管理系统中使用。

在Excel表格中,使用SQL语句可以实现对Excel 工作表数据进行查询的方法。

以下是店铺为您带来的关于使用SQL语句对Excel工作表数据进行查询,希望对您有所帮助。

使用SQL语句对Excel工作表数据进行查询1、启动Excel并打开工作簿,在这个工作簿中,工作表Sheet1放置商品信息记录,如图1所示;工作表Sheet2用于对商品记录进行查询,其结构如图2所示。

图1 放置商品信息记录的工作表图2 用于商品记录查询的工作表2、打开Visual Basic编辑器,在工程资源管理器中插入一个模块,在模块的“代码”窗口中输入如下程序代码:Sub CheckData()Dim cnn As ADODB.Connection '声明连接对象变量Dim rs As ADODB.Recordset '声明记录集对象Dim strSql As StringDim str As StringOn Error Resume NextSet cnn=CreateObject("ADODB.Connection") '创建连接对象变量Set rs=CreateObject("ADODB.Recordset") '创建记录集对象记录cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;"_&"Extended Properties=Excel 8.0;"_&"Data Source="&ThisWorkbook.FullNamestr=ActiveSheet.Range("B1").Value '获取当前单元格内容strSql="Select*FROM[Sheet1$]Where商品like '%"&str&"%'"'创建数据筛选命令rs.Open strSql,cnn,adOpenStaticWith ActiveSheet.Range("A4:D100").ClearContents '清除单元格记录.Range("A4").CopyFromRecordset rs '复制筛选结果End Withrs.Closecnn.CloseSet rs=NothingSet cnn=NothingEnd Sub3、首先在Sheet2工作表中输入需要查询的商品名称,如图3所示。

怎么快速提取一个excel文件中的所有工作表名?

怎么快速提取一个excel文件中的所有工作表名?

怎么快速提取一个excel文件中的所有工作表名?
如果一个工作簿中有多个工作表,快速获取所有工作表名称有两种方法比较不错,一种是使用函数,另一种是用VBA代码。

使用函数
使用函数的话需要提前安装一个函数扩展包。

如下图所示,这个工作簿中有7个表,需要提取所有工作表名称。

我们在第一张工作表的A1单元格输入公式
=IFERROR(GetSheetName(ROW(A1)),'
')
然后向下拖动复制,知道出现空白即停止。

这里IFERROR函数的作用是屏蔽错误值,让结果更整洁。

这里提到的函数扩展包在方方格子官网可以找到。

使用VBA代码
我们切换到【开发工具】菜单,点击【Visual Basic】打开VBA代码编辑器,新建一个模块,并输入如下代码。

Sub GetSheetsName()
Dim sht As Worksheet
Dim i As Integer
i = 1
For Each sht In Sheets
Cells(i, 2) =
i = i + 1
Next
End Sub
然后点击【运行】按钮,即可在B列快速生成所有工作表的名称。

第一种方法相对简单,对于初学者比较友好,但需要提前安装函数扩展包;第二种方法需要有简单的VBA基础,但也相对比较简单。

大家可以根据自己的情况选择合适的方法。

Excel如何用VBASQL筛选多个工作表的数据?VBA,SQL,筛选,数据

Excel如何用VBASQL筛选多个工作表的数据?VBA,SQL,筛选,数据

Excel如何用VBASQL筛选多个工作表的数据?VBA,SQL,筛选,数据免责声明:本文来源于网络,版权归原创作者所有,如有侵权,请联系删除。

学习一下版主的代码,把字段名也用代码加入Sub a()Range('A1:L1000').ClearContents '清空A2:L1000区域的数据Set Conn = CreateObject('adodb.connection') '创建ADO链接方式Set rs = CreateObject('adodb.recordset')Conn.Open 'provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=' & ThisWorkbook.FullName '打开数据源链接For i = 1 To Sheets.Count - 1 '循环第一个到倒数第二个工作表Sq = Sq & 'select * from [' & Sheets(i).Name & '$] where 积分 > 10 ' & ' union all ' '每个数据表的符合积分大于10分的数据都进行连接起来Next iSq = Left(Sq, Len(Sq) - 11) '因为循环倒数第二个工作表时,sq语句最后还是链接到 union all ,一共有11个字符,这时要提取sq字符串中不包含最后11个字符的字符串Set rs = Conn.Execute(Sq)For i = 1 To rs.Fields.Count '把选取的字段名写到表格Sheets('查询').[a1].Cells(1, i) = rs.Fields(i - 1).NameNextSheets('查询').[A2].CopyFromRecordset rs '在A2执行该SQL语句,并且使用了CopyFromRecordset执行方法Conn.CloseSet Conn = NothingEnd Sub。

SQL统计一个数据库中所有表记录的数量

SQL统计一个数据库中所有表记录的数量
但是如果当正在执行的事务没有commit时由于服务器或实例崩溃导致连接断开sqlserver可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务无论你使用的故障转移方式是集群镜像日志传送或是san复制
SQL统 计 一 个 数 据 库 中 所 有 表 记 录 的 数 量
复制代码 代码如下:
CREATE TABLE #tmptb(tbname sysname,tbrows int ,tbREserved varchar(10),tbData varchar(10) ,tbIndexSize varchar(10),tbUnUsed varchar(10)) INSERT INTO #tmptb exec sp_MSForEachTable 'EXEC sp_spaceused ''?''' SELECT * from #tmptb --列出所有表的情况 SELECT tbrows ,tbname FROM #tmptb WHERE tbrows=0 --列出记录数据为0的表 ORDER BY tbname DROP TABLE #tmptb
其中 tbname 表名 tbrows 记录数 tbREserved 保留空间 tbData 使用空间 tbIndexSize 索引使用空间 tbUnUsed

excel连数sql语句

excel连数sql语句

excel连数sql语句
在Excel中使用SQL语句可以帮助你对数据进行更复杂的分析和处理。

要在Excel中使用SQL语句,你需要使用Excel的数据功能和Microsoft Query来实现。

以下是一个简单的示例来说明如何在Excel中使用SQL语句:
首先,确保你的数据已经准备好,然后按照以下步骤操作:
1. 打开Excel并导入你的数据表格。

2. 在Excel菜单中选择“数据”选项卡,然后点击“来自其他来源”>“从SQL Server”(或者选择适合你的数据库类型)。

3. 输入数据库服务器的名称和登录信息,然后选择你要查询的数据库。

4. 在“查询向导”中,选择“使用 SQL 向导”。

5. 在“SQL 向导”中,输入你的 SQL 查询语句。

例如,如果你想要从表格中选择所有的数据,你可以输入,SELECT FROM [表
格名]。

6. 点击“完成”并选择将数据放在新的工作表中或者现有的位置。

通过以上步骤,你就可以在Excel中使用SQL语句来查询和分
析数据了。

需要注意的是,SQL语句在Excel中的使用有一些限制,不支持所有的SQL功能,但是可以满足大部分基本的查询需求。

另外,你也可以在Excel中使用宏来执行SQL查询,这样可以
更灵活地控制数据的处理和分析过程。

通过编写VBA宏代码,你可
以实现更复杂的数据处理和分析功能。

总之,通过在Excel中使用SQL语句,你可以更灵活地处理和
分析数据,实现更复杂的查询和计算功能。

希望这些信息能够帮助
你更好地使用Excel进行数据处理和分析。

sql语句获取表名方法

sql语句获取表名方法

sql语句获取表名方法获取表名的SQL 语句可以通过查询系统表来实现。

以下是获取表名的SQL 语句:```sqlSELECT name FROM sys.tables;```这个语句将返回当前数据库中的所有表名。

如果要获取特定模式的表名,则可以使用以下语句:```sqlSELECT name FROM sys.tables WHERE schema_id = SCHEMA_ID('schema_name');```其中,`schema_name` 是模式的名称。

如果要获取特定表的名称,则可以使用以下语句:```sqlSELECT name FROM sys.tables WHERE object_id =OBJECT_ID('table_name');```其中,`table_name` 是表的名称。

这个语句将返回指定表的名称。

除了`sys.tables`,还有其他系统表可以用于获取表名,例如`INFORMATION_SCHEMA.TABLES`。

以下是使用`INFORMATION_SCHEMA.TABLES` 获取表名的SQL 语句:```sqlSELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'schema_name';```其中,`schema_name` 是模式的名称。

这个语句将返回指定模式中的所有表名。

无论使用哪种方法,都可以通过SQL 语句获取表名。

这些语句可以帮助开发人员更好地管理数据库中的表。

excel中使用sql语句

excel中使用sql语句

excel中使用sql语句在 Excel 中,您可以使用 SQL 语句来查询和分析数据。

Excel 支持使用 SQL 语句对数据进行筛选、排序和聚合操作。

下面是一些常用的 SQL 语句在 Excel 中的应用示例:1. 查询表格中的数据:```.SELECT * FROM [Sheet1$]```.这个语句会查询名为 "Sheet1" 的工作表中的全部数据。

2. 条件筛选:```.SELECT * FROM [Sheet1$] WHERE 列名 = 值。

```.这个语句会查询满足条件的行,其中 "列名" 是要筛选的列名,"值" 是要匹配的值。

3. 排序:```.SELECT * FROM [Sheet1$] ORDER BY 列名 ASC/DESC.```.这个语句会按照指定列的升序(ASC)或降序(DESC)对数据进行排序。

4. 聚合操作:```.SELECT 列名, 聚合函数(列名) FROM [Sheet1$] GROUP BY 列名。

```.这个语句会对指定列进行分组,并应用聚合函数(如SUM、COUNT、AVG、MAX、MIN 等)进行统计计算。

请注意,上述示例中的 "[Sheet1$]" 是指查询的目标工作表名,您可以根据需要修改为您实际的工作表名。

要在 Excel 中使用 SQL 语句,您需要打开 Excel 内建的 "数据" 标签,然后选择 "从其他数据源" 或 "从文本",根据您的数据来源选择合适的选项,进入查询编辑器。

在编辑器中,您可以输入上述 SQL 语句并执行查询,然后将结果显示在 Excel 中,或将查询结果导入到新的工作表或数据透视表中。

希望以上信息对您有帮助!如果您有进一步的问题,请随时提问。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用SQL脚本读取Excel中的sheet数量及名称?
1 2 3 4 5 6 7 8 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 [sql]
-- Get table (worksheet) or column (field) listings from an excel spreadsheet
-- 设置变量
declare @linkedServerName sysname = 'TempExcelSpreadsheet'
declare @excelFileUrl nvarchar(1000) = 'D:\text.xlsx'
-- /SET
-- 删除链接服务(如果它已经存在)
if exists(select null from sys.servers where name = @linkedServerName) begin exec sp_dropserver @server = @linkedServerName, @droplogins = 'droplogins' end
-- 添加服务对象
-- ACE 12.0 可以很好地工作为*.xls 和 *.xlsx, 你也可以用 Jet ,但是只能访问*.xls文exec sp_addlinkedserver
@server = @linkedServerName,
@srvproduct = 'ACE 12.0',
@provider = 'Microsoft.ACE.OLEDB.12.0',
@datasrc = @excelFileUrl,
@provstr = 'Excel 12.0;HDR=Yes'
-- 获取当前用户
declare @suser_sname nvarchar(256) = suser_sname()
-- 添加当前用户作为登陆这个链接服务
exec sp_addlinkedsrvlogin
@rmtsrvname = @linkedServerName,
@useself = 'false',
@locallogin = @suser_sname,
@rmtuser = null,
@rmtpassword = null
-- 返回 sheet 和各个 sheet中的列
exec sp_tables_ex @linkedServerName
exec sp_columns_ex @linkedServerName
删除链接服务对象</span>
if exists(select null from sys.servers where name = @linkedServerName) begin
41
42 exec sp_dropserver @server = @linkedServerName, @droplogins = 'droplogins' end。

相关文档
最新文档