Aug-13-2020, 04:24 AM
(This post was last modified: Aug-13-2020, 06:35 AM by Gribouillis.)
I need to get 'used data space' of database. I decided to use sp_spaceused. I am using python 3 and pyodbc My code:
1. How to fix it?
2. What select statement could I use instead of stored procedure to get 'used data space'?
Thanks
query = '''
CREATE TABLE SpaceUsed (
TableName sysname
,NumRows BIGINT
,ReservedSpace VARCHAR(50)
,DataSpace VARCHAR(50)
,IndexSize VARCHAR(50)
,UnusedSpace VARCHAR(50)
)
INSERT INTO SpaceUsed
EXEC sp_msforeachtable @command1=\'exec sp_spaceused ''?''\'
SELECT
sum(CONVERT(int,REPLACE(DataSpace,' KB','')) ) as SUM
FROM SpaceUsed
'''
db = pyodbc.connect(dsn2)
curs = db.cursor()
curs.execute(query)
actual_size = curs.fetchall()[0][0]It throws an error:Error: actual_size = curs.fetchall()[0][0]
pyodbc.ProgrammingError: No results. Previous SQL was not a query.Questions:1. How to fix it?
2. What select statement could I use instead of stored procedure to get 'used data space'?
Thanks
