我正在尝试在 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
,但我不知道如何判断SSM是否已经打开。
对于Excel,我知道我可以使用GetObject(, "Excel.Application")
- SSM的等效物是什么?
(从上一个问题中,Shell "explorer " & TempSQL1
在当前实例中打开文件,但是如果没有SSMS实例打开,则会失败)
您可以使用以下功能来确定当前在计算机上运行的管理工作室(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