gpt4 book ai didi

sql-server - 将 SQL Server 脚本文本导入 Excel

转载 作者:行者123 更新时间:2023-12-04 20:17:43 24 4
gpt4 key购买 nike

我有很多 View 和存储过程需要定期查看,为此,我将 SQL Server 中的 TSQL 粘贴到 Excel 电子表格中,我可以在其中创建公式来分析它。

有没有办法(使用 VBA?)将实际脚本从定义的 View 或存储过程导入 Excel 中的单元格?

所以只是为了确认,我想返回脚本,而不是执行脚本的结果。

非常感谢

最佳答案

从 SQL 的角度来看,您可以使用以下查询获取 View 文本:

SELECT [definition]
FROM sys.sql_modules m
INNER JOIN sys.objects o
ON m.object_id=o.object_id
WHERE [name] = 'ViewName'
AND [type] = 'V'

对于 procs 将 WHERE 更改为:
WHERE [name] = 'Procname'
AND [Type] = 'P'

编辑:这是一个返回此数据的快速 VBA 函数,只需替换连接详细信息:
Public Function GetObject(ByVal nm As String, ByVal Tp As String) As String

Set objMyConn = New ADODB.Connection
Set objMyRecordset = New ADODB.Recordset
Dim strSQL As String
Dim retval As String

With objMyConn
.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[MyID];Password=[MyPass];Data Source=[ServerName];" & _
"Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;" & _
"Tag with column collation when possible=False;Initial Catalog=[DBName]"
.Open
End With

strSQL = "SELECT [definition] " & _
"FROM sys.sql_modules m " & _
"INNER JOIN sys.objects o ON m.object_id=o.object_id " & _
"WHERE [name] = '" & nm & _
"' AND [Type] = '" & Tp & "'"


Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open strSQL

Do While Not objMyRecordset.EOF

retval = objMyRecordset.Fields("description").Value

objMyRecordset.MoveNext

Loop

Set GetObject = retval

End Function

关于sql-server - 将 SQL Server 脚本文本导入 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com