当我在这个脚本中运行这两个语句中的任何一个时:
SELECT name FROM sys.databases
SELECT name FROM master.dbo.sysdatabases
在Sql Server Management Studio中我得到了
名称
主人
tempdb
模型
msdb
foofoo
unitoo
(受影响的6行)
其中tempdb,foofoo和unitoo是我创建的数据库。 现在查看Managment Studio中的对象资源管理器,tempdb位于系统数据库下,而其他两个位于数据库/ foofoo数据库是由这个ddl:
创建的use master
go
create database "foofoo"
go
use master
go
现在当我运行这个python代码时:
import pyodbc
def PrintOutListOfLocalDatabases():
connStr = (
r"DRIVER={SQL Server Native Client 11.0};"
r"SERVER=(localdb)\MSSQLLocalDB;"
r"Integrated Security=true;")
cnxn = pyodbc.connect(connStr, autocommit=True)
crsr = cnxn.execute("SELECT name FROM sys.databases")
for row in crsr.fetchall():
print(row[0])
crsr.close()
cnxn.close()
我得到了
主人
tempdb
模型
msdb中
数据库下的两个数据库未显示。如果我浏览到文件资源管理器中的sql server Data目录,我会在同一个地方看到所有6个数据库的.mdf和.ldf文件。
为什么我创建的三个数据库中有两个在运行python代码时没有返回?