我试图在 SQL Server Management Studio 中打开SQL窗口以显示所使用的SQL语句(这是为了允许人们直接修改语句)
我不想发表声明,我已经可以这样做了。
我可以轻松地开始一个新流程:(当前代码)
Public Sub ShowSQL(strSQL As String)
Dim TempSQL As String
Dim FileNum As Long
strSQL = Replace(strSQL, ",", "," & vbCrLf)
TempSQL = Get_Temp_File_Name
FileNum = FreeFile()
Open TempSQL For Output As #FileNum
Print #FileNum, strSQL
Close #FileNum
Shell "ssms " & TempSQL
End Sub
但我不知道如何判断SSMS是否已经打开
对于Excel,我知道我可以使用GetObject(, "Excel.Application")
- 什么是SSMS的等价物?
(来自previous question,Shell "explorer " & TempSQL1
打开当前实例中的文件,但如果没有打开SSMS实例则会失败)
答案 0 :(得分:1)
您可以使用以下函数来确定您的计算机上当前是否正在运行management studio(ssms.exe):
Function IsProcessRunning(ProcessName As String) As Boolean
Dim Process, strObject
strObject = "winmgmts://" & Environ("ComputerName")
For Each Process In GetObject(strObject).InstancesOf("win32_process")
If UCase(Process.Name) = UCase(ProcessName) Then
IsProcessRunning = True
Exit Function
End If
Next
IsProcessRunning = False
End Function
代码中的写:
if Not IsProcessRunning("ssms.exe") Then Shell "ssms " & TempSQL