据我所知,SQL Server系统数据库总是具有相同的 ID,而且我在 Internet 上看到许多维护脚本依赖谓词WHERE database_id > 4将它们从脚本的操作中排除。
另外,如果我SELECT name, schema_id FROM sys.schemas;在新的用户数据库上运行,我会得到:
name schema_id
dbo 1
guest 2
INFORMATION_SCHEMA 3
sys 4
db_owner 16384
db_accessadmin 16385
db_securityadmin 16386
db_ddladmin 16387
db_backupoperator 16389
db_datareader 16390
db_datawriter 16391
db_denydatareader 16392
db_denydatawriter 16393
Run Code Online (Sandbox Code Playgroud)
我在两个不同的实例上运行了该查询,一个是 SQL Server 2016,另一个是 SQL Server 2005,并且都返回了相同的结果。
我目前在本地运行 Postgresql 10.6,我使用 PgAdmin 4.12 与之交互,直到今天一切都运行良好。但是今天我在 pgAdmin 查询编辑器中运行了以下查询:
SELECT * FROM test_table LIMIT 100
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
Run Code Online (Sandbox Code Playgroud)ERROR: operator does not exist: - oid at character 125 HINT: No operator matches the given name and argument type. You might need to add an explicit type cast. STATEMENT: SELECT at.attname, at.attnum, ty.typname FROM pg_attribute at LEFT JOIN pg_type ty ON (ty.oid = at.atttypid) WHERE attrelid=-1519044407::oid AND attnum = ANY ( (SELECT con.conkey FROM pg_class rel LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND …