1

sysobjects uid2005+ sys.objects(または別の) ビュー からSQL Server 2000 列に相当するものを取得する方法を知っている人はいますか?

すべての参照を削除しているため、このコードを変換しようとしていsysobjectsます。

DECLARE GETOBJECTS CURSOR FOR 
SELECT NAME, UID FROM SYSOBJECTS
WHERE TYPE IN ('U','P')
    AND UID <> 1
    AND LOWER(RTRIM(NAME)) NOT LIKE 'PB%'

前もって感謝します、

ケビン

4

2 に答える 2

2

UIDは、オブジェクトの所有者のユーザー ID を参照します...

SQL 2005 および SQl 2008 では、次の場所にあります。

sys.sysobjects 

フィールド名UID

Sys.sys オブジェクト

UID =1 は dbo ユーザーです。

したがって、ルーチンとテーブル ビューを使用して dbo を除外するには、次のコードを試してください。

select Routine_name as Name, specific_schema as user 
from INFORMATION_SCHEMA.ROUTINES
where specific_schema <> 'dbo'
UNION
select Table_name as Name, specific_schema as user 
from INFORMATION_SCHEMA.TABLES
where specific_schema <> 'dbo'
于 2011-11-23T16:42:36.833 に答える
0

プリンシパルが所有していないすべてのオブジェクトを取得するには、次のdboようにします。

select name, object_id
from sys.objects
where principal_id not in
(
    select principal_id
    from sys.database_principals
    where name = 'dbo'
)
于 2011-11-23T16:33:46.447 に答える