SQL-Abfrage mit unterschiedlichen Ergebnissen
Hi,
ich habe hier ein Problem mit einer SQL-Abfrage, bei welcher ich auf verschiedenen Wegen verschiedene Ergebnisse bekomme, und stehe deswegen jetzt auf dem Schlauch.
Gegeben ist ein MS SQL Server 2016 auf Windows Server 2016.
Die Abfrage erfolgt über ein dediziertes SQL-Konto, welches nur die notwendigen Rechte hat.
Abgefragt werden soll der verfügbare Festplattenplatz der SQL Instanz.
Dafür habe ich im Internet folgende Abfrage recherchiert:
Diese Abfrage funktioniert auch, wenn ich
Dann kommt als Ergebnis z.B.
Führe ich jedoch
Und ich bekomme keinen Fehler, von wegen Zugriff verweigert o.ä.
(Die genannten Variablen mDbServerInstance, mDatabaseName, mUserName, mPassword sind auf Klassen-Ebene definiert und haben auch die korrekten Werte.)
Und das verstehe ich nicht.
Muss ich unter .Net noch irgendwas aktivieren, damit diese Abfrage dort auch funktioniert?
E.
ich habe hier ein Problem mit einer SQL-Abfrage, bei welcher ich auf verschiedenen Wegen verschiedene Ergebnisse bekomme, und stehe deswegen jetzt auf dem Schlauch.
Gegeben ist ein MS SQL Server 2016 auf Windows Server 2016.
Die Abfrage erfolgt über ein dediziertes SQL-Konto, welches nur die notwendigen Rechte hat.
Abgefragt werden soll der verfügbare Festplattenplatz der SQL Instanz.
Dafür habe ich im Internet folgende Abfrage recherchiert:
SELECT DISTINCT([volume_mount_point]), [available_bytes]
FROM [sys].[master_files] AS [f] CROSS APPLY
[sys].[dm_os_volume_stats]([f].[database_id], [f].[file_id])
GROUP BY [volume_mount_point], [available_bytes]
ORDER BY 1
Diese Abfrage funktioniert auch, wenn ich
- im SQL Server Management Studio
- mit o.g. dedizierten SQL Benutzer eine Verbindung zur Instanz herstelle
- die o.g. Abfrage ausführe
Dann kommt als Ergebnis z.B.
volume_mount_point available_bytes
L:\ 434136416256
L:\MSSQL11.xxxxx\MSSQL\DATA\yyyy\ 86200115200
Führe ich jedoch
- dieselbe Abfrage
- in derselben Instanz
- mit demselben Benutzerkonto
- jedoch mit .Net (VB.Net) aus
Und ich bekomme keinen Fehler, von wegen Zugriff verweigert o.ä.
(Die genannten Variablen mDbServerInstance, mDatabaseName, mUserName, mPassword sind auf Klassen-Ebene definiert und haben auch die korrekten Werte.)
Dim µReturnValue As SqlDataReader = Nothing
Dim µConnectionString = String.Format(
"Server={0};DataBase={1};uid={2};pwd={3}",
mDbServerInstance, mDatabaseName, mUserName, mPassword
)
Dim µQueryString = "SELECT DISTINCT([volume_mount_point]), [available_bytes] " &
"FROM [sys].[master_files] AS [f] CROSS APPLY " &
" [sys].[dm_os_volume_stats]([f].[database_id], [f].[file_id]) " &
"GROUP BY [volume_mount_point], [available_bytes] " &
"ORDER BY 1"
Dim µCon As New SqlConnection(µConnectionString)
µCon.Open()
Using µCmd As New SqlCommand(µQueryString, µCon)
µReturnValue = µCmd.ExecuteReader(CommandBehavior.CloseConnection)
End Using
Und das verstehe ich nicht.
Muss ich unter .Net noch irgendwas aktivieren, damit diese Abfrage dort auch funktioniert?
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1486427314
Url: https://administrator.de/forum/sql-abfrage-mit-unterschiedlichen-ergebnissen-1486427314.html
Ausgedruckt am: 31.03.2025 um 14:03 Uhr
1 Kommentar