LEGGERE PRIMARY KEY TRAMITE QUERY SELLE INFORMAZIONI DELLA TABELLA

giovedì 17 maggio 2007 - 14.56

andreapavia Profilo | Senior Member

con questa leggo le caratteristiche di una tabella su SQLSERVER 2000

Select COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH,
NUMERIC_PRECISION,
NUMERIC_SCALE
From pubs.Information_Schema.Columns
Where Table_Name = 'authors'

come faccio a far leggere anche i campi che sono primary key?????


oppure che query devo usare per leggere le primary key di una tabella????

grazie 1000

lbenaglia Profilo | Guru

>Select COLUMN_NAME,
> DATA_TYPE,
> CHARACTER_MAXIMUM_LENGTH,
> NUMERIC_PRECISION,
> NUMERIC_SCALE
>From pubs.Information_Schema.Columns
>Where Table_Name = 'authors'
>
>come faccio a far leggere anche i campi che sono primary key?????

Ciao Andrea,

guarda che quella query restituisce tutte le colonne indipendentemente dai constraint che hai definito

>oppure che query devo usare per leggere le primary key di una
>tabella????
Ecco:

USE tempdb; CREATE TABLE dbo.Students( FirstName varchar(10) NOT NULL, LastName varchar(10) NOT NULL, BirthDate datetime NOT NULL, CONSTRAINT PK_Students PRIMARY KEY(FirstName, LastName) ); SELECT COLUMN_NAME , DATA_TYPE , CHARACTER_MAXIMUM_LENGTH , NUMERIC_PRECISION , NUMERIC_SCALE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Students'; /* Output: COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH NUMERIC_PRECISION NUMERIC_SCALE ------------ ---------- ------------------------ ----------------- ------------- FirstName varchar 10 NULL NULL LastName varchar 10 NULL NULL BirthDate datetime NULL NULL NULL (3 row(s) affected) */ SELECT CCU.COLUMN_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS CCU JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC ON CCU.CONSTRAINT_NAME = TC.CONSTRAINT_NAME WHERE CCU.TABLE_NAME = 'Students' AND CCU.TABLE_SCHEMA = 'dbo' AND TC.CONSTRAINT_TYPE = 'PRIMARY KEY'; /* Output: COLUMN_NAME ------------ FirstName LastName (2 row(s) affected) */ DROP TABLE dbo.Students;

>grazie 1000
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

andreapavia Profilo | Senior Member

come al solito,,, lorenzo (il maradona del db),,, spacca alla grandissima!!!!!!


la tua risposta è perfetta,,, lo faccio in due query.... io credevo che fosse possibile nella query che avevo scritto (con qualche prorpieta') capire se la colonna in questione
fosse niente, una FK, o una PK...


ma è fantastico anche cosi'!!!!!!!


come al solito grazie supermille lorenzo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5