/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
System/User-tabeller i SQL2K
Fra : Ukendt


Dato : 07-07-02 12:53

Hej,

Jeg henter noget meta-data fra en db i SQL2K via. nogle hjemmestrikkede
sql-scripts. Opslag i sysobjects viser at system-tabellen dtproperties er en
user-tabel, men i tabel-oversigten ( i Enterprise Manager'en ) er den
angivet ved Type=System table.

Jeg vil kun have oplysninger om mine egne tabeller og har derfor sat et
kriterie i mit opslag i sysobjects til type='U', men dtproperties kommer med
alligevel ( fordi den står listed som user-table i sysobjects ) men hvis
ikke dette felt definere tabellen som user-table - hvad gør så ???

Jeg vil altså gerne undgå at have dtproperties med i result-sættet - nogle
ide'er ???

--
Med venlig hilsen

Søren Staun Jørgensen
CADeye
Mail : ssj@cadeye.dk
Http : www.cadeye.dk
Tlf. : +45 9816 4643



 
 
Jakob Andersen (08-07-2002)
Kommentar
Fra : Jakob Andersen


Dato : 08-07-02 22:16


"Soren Staun Jorgensen" <ssj(at)cadeye(dot)dk> wrote in message
news:3d282b82$0$661$ba624c82@nntp04.dk.telia.net...
> Jeg vil altså gerne undgå at have dtproperties med i result-sættet - nogle
> ide'er ???

Er det ikke bare at sige:

SELECT x,y FROM sysobjects WHERE type = 'U' AND name != 'dtproperties'

eller hvad?

--
Jakob Andersen



Ukendt (09-07-2002)
Kommentar
Fra : Ukendt


Dato : 09-07-02 09:35

Hej Jacob,

Johh - det ville være den næmme løsning ( som jeg også bruger nu ). 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.

Ellers tak...

Søren


"Jakob Andersen" <jakob@effectus.dk> skrev i en meddelelse
news:agcvgl$1kq6$1@news.cybercity.dk...
>
> "Soren Staun Jorgensen" <ssj(at)cadeye(dot)dk> wrote in message
> news:3d282b82$0$661$ba624c82@nntp04.dk.telia.net...
> > Jeg vil altså gerne undgå at have dtproperties med i result-sættet -
nogle
> > ide'er ???
>
> Er det ikke bare at sige:
>
> SELECT x,y FROM sysobjects WHERE type = 'U' AND name != 'dtproperties'
>
> eller hvad?
>
> --
> Jakob Andersen
>
>



Jakob Andersen (12-07-2002)
Kommentar
Fra : Jakob Andersen


Dato : 12-07-02 22:34

"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



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste