"Soren Staun Jorgensen" <ssj(at)cadeye(dot)dk> wrote in message
news:3d2aa070$0$396$ba624c82@nntp01.dk.telia.net...
> Men jeg var egentlig ude efter hvorfor "dtproperties"
> optræder i view'et som en system-tabel når den i "sysobjects"
> står listed som user.
Prøv at slå Profileren til før du beder EM om at liste tabellerne, så vil du
finde ud af at Enterprise Manager ikke bruger type til at finde ud af
hvorvidt det er en systemtabel eller ej den benytter. Der benyttes istedet
funktionen OBJECTPROPERTY( idpåobject, IsMSShipped) som angiver hvor vidt
objektet er oprettet under "installationen"(eller i dette tilfælde
oprettelsen af objektet).
Hvis du er mere interreseret er hele Queryen her:
SELECT
s1 = o.name,
s2 = user_name(o.uid),
o.crdate,
o.id,
N'SystemObj' = (case when (OBJECTPROPERTY(o.id, N'IsMSShipped')=1) then
1 else OBJECTPROPERTY(o.id, N'IsSystemTable') end),
o.category,
0,
ObjectProperty(o.id, N'TableHasActiveFulltextIndex'),
ObjectProperty(o.id, N'TableFulltextCatalogId'),
N'FakeTable' = (case when (OBJECTPROPERTY(o.id, N'tableisfake')=1) then
1 else 0 end),
(case when (OBJECTPROPERTY(o.id, N'IsQuotedIdentOn')=1) then 1 else 0
end),
(case when (OBJECTPROPERTY(o.id, N'IsAnsiNullsOn')=1) then 1 else 0 end)
FROM
dbo.sysobjects o,
dbo.sysindexes i
WHERE
OBJECTPROPERTY(o.id, N'IsTable') = 1
AND
i.id = o.id
AND
i.indid < 2
AND
o.name not like N'#%'
ORDER BY
s1,
s2
--
Jakob Andersen
|