Funzione sql server

martedì 18 aprile 2006 - 14.09

scandian Profilo | Newbie

esiste una funzione che passandogli il nome della colonna, mi restituisce il tipo???

lbenaglia Profilo | Guru

>esiste una funzione che passandogli il nome della colonna, mi
>restituisce il tipo???

Ciao scandian,

no, ma nessuno ti vieta di definire una user-defined function scalare che ti restituisca questa informazione.
SQL Server offre le INFORMATION_SCHEMA views che aderiscono allo standard ANSI SQL-92 e permettono di leggere i metadati di un database senza la necessità di accedere alle tabelle di sistema.
Nel tuo caso potresti ricorrere alla INFORMATION_SCHEMA view COLUMNS:

USE AdventureWorks; GO /* Definisco l'UDF dbo.GetColumnType */ CREATE FUNCTION dbo.GetColumnType( @Schema nvarchar(128), @Table nvarchar(128), @Column nvarchar(128) ) RETURNS nvarchar(128) BEGIN RETURN( SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @Schema AND TABLE_NAME = @Table AND COLUMN_NAME = @Column ) END GO /* Esempi */ SELECT dbo.GetColumnType(N'HumanResources', N'Department', N'Name') AS DataType; GO /* Output: DataType ---------- nvarchar (1 row(s) affected) */ SELECT dbo.GetColumnType(N'Person', N'Address', N'ModifiedDate') AS DataType; GO /* Output: DataType ---------- datetime (1 row(s) affected) */ /* Pulizia */ DROP FUNCTION dbo.GetColumnType;

Per maggiori informazioni leggi il seguente paragrafo sui Books Online:

"COLUMNS (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms188348.aspx

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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