Prikaži potpunu verziju : SQL - Sistemski podaci o tabelama
:n_klanja:PLEASE HELP,u narednom kveriju SAM DOBILA SISTEMSKE PODATKE O TABELI,KAO STO JE NAZIV TABELE ,NAZIV POLJA,I OPIS POLJA:
SELECT TOP 100 PERCENT i_s.TABLE_NAME AS ImeTabele, i_s.COLUMN_NAME AS ImeKolone, s.[value] AS Opis, i_s.DATA_TYPE AS TipPodatka, i_s.*,
s.*
FROM INFORMATION_SCHEMA.COLUMNS i_s LEFT OUTER JOIN
dbo.sysproperties s ON s.id = OBJECT_ID(i_s.TABLE_SCHEMA + '.' + i_s.TABLE_NAME) AND s.smallid = i_s.ORDINAL_POSITION AND
s.name = 'MS_Description'
WHERE (OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA + '.' + i_s.TABLE_NAME), 'IsMsShipped') = 0)
ORDER BY i_s.TABLE_NAME, i_s.ORDINAL_POSITION
Da li mozda neko ima ideju na koji nacin da dobijem podatke o duzini nekog polja koje je programer u bazi pri kreiranju tabele,definisao,taj podatak mi je jako bitan za kreiranje izvestaja,neke vrste dokumenata o tabelama.PLEASE HELP:n_klanja:
Stavi, da ti prvo polje bude filovano karakterima, pa count-uj taj char ili još bolje svi u prvo polje broj dužine polja, ili kreiraj tabelu koja će imati samo brojeve dužina tabela :)
Pa tako nesto slicno sam probala,ali mi je problem kako da ocitam iz sistema duzinu polja,recimo kada se u dizajnu kreira tabela,navede se ime polja ,tip podatka,duzina polja...e odakle da ocitam tu duzinu polja?Unapred hvala
Stavi, da ti prvo polje bude filovano karakterima, pa count-uj taj char ili još bolje svi u prvo polje broj dužine polja, ili kreiraj tabelu koja će imati samo brojeve dužina tabela :)
NE, NE, NE i OH GOD NE ! :eek:
omg, toliko je losa praksa sve to sto si naveo, NIKAKO to ne raditi.
pravilan nacin je da izvuces iz tabela koje opisuju sve tabele i polja.
u svakoj bazi je drugacije, znam da je u MS SQL Serveru (ali 2008, ne znam za 2000, al sigurno je bar slicno, ako ne isto)
Select CHARACTER_MAXIMUM_LENGTH from <imeGlavneSeme>.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'ime_tabele' and COLUMN_NAME = 'ime_kolone'
mozes i umesto select CHARACTER_MAXIMUM_LENGTH da stavis select *, pa vidi sta sve ima od informacija o svakom polju, mozda ti je jos nesto koristan podatak ;)
NE, NE, NE i OH GOD NE ! :eek:
omg, toliko je losa praksa sve to sto si naveo, NIKAKO to ne raditi.
pravilan nacin je da izvuces iz tabela koje opisuju sve tabele i polja.
u svakoj bazi je drugacije, znam da je u MS SQL Serveru (ali 2008, ne znam za 2000, al sigurno je bar slicno, ako ne isto)
Select CHARACTER_MAXIMUM_LENGTH from <imeGlavneSeme>.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'ime_tabele' and COLUMN_NAME = 'ime_kolone'
mozes i umesto select CHARACTER_MAXIMUM_LENGTH da stavis select *, pa vidi sta sve ima od informacija o svakom polju, mozda ti je jos nesto koristan podatak ;)
Hvala jos jednom resila sam uz Vasu pomoc na sledeci nacin:
SELECT TOP 100 PERCENT i_s.TABLE_NAME AS ImeTabele, i_s.COLUMN_NAME AS ImeKolone, s.[value] AS Opis, i_s.DATA_TYPE AS TipPodatka, i_s.*, s.*,
CHARACTER_MAXIMUM_LENGTH AS DuzinaPolja
FROM INFORMATION_SCHEMA.COLUMNS i_s LEFT OUTER JOIN
dbo.sysproperties s ON s.id = OBJECT_ID(i_s.TABLE_SCHEMA + '.' + i_s.TABLE_NAME) AND s.smallid = i_s.ORDINAL_POSITION AND
s.name = 'MS_Description'
WHERE (OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA + '.' + i_s.TABLE_NAME), 'IsMsShipped') = 0)
ORDER BY i_s.TABLE_NAME, i_s.ORDINAL_POSITION:nov_explo
Samo sada vidim da za int i smalldatetime ne vidim duzinu polja,kako to da prevazidjemo?
odlicno! drago mi je da je ste uspeli da izvucete potrebne podatke :)
Samo da pitam zasto mi za int i smalldatetime ne prikazuje duzinu polja?Unapred hvala
pretpostavljam jer se za njih tacno zna koliko su veliki ?
int ima 4 bajta (32 bita), i moze da prikaze vrednosti od −2,147,483,648 do +2,147,483,647
datetime se u pozadini cuva kao dva int-a, dakle 8 bajtova. prvi int odredjuje broj dana od base datuma (01.01.1900) a drugi int broj milisekundi od ponoci tog dana (od 00:00:00)
ali ove informacije ti bas i nisu korisne i potrebne...
Cool, ovo je bas korisno. Nisam znao da postoji ta komanda :)
vBulletin® v3.8.7, Copyright ©2000-2024, vBulletin Solutions, Inc.