Compartir a través de


sqlsrv_field_metadata

Recupera los metadatos de los campos de una instrucción preparada. Para obtener información acerca de cómo preparar una instrucción, vea sqlsrv_query o sqlsrv_prepare. Tenga en cuenta que sqlsrv_field_metadata se puede llamar en cualquier instrucción preparada, antes o después de la ejecución.

Sintaxis

sqlsrv_field_metadata( resource $stmt)

Parámetros

$stmt: un recurso de instrucción para el que se buscan los metadatos de campo.

Valor devuelto

Una array de matrices o false. La matriz consta de una matriz para cada campo en el conjunto de resultados. Cada submatriz tiene las claves que se describen en la tabla siguiente. Si se produce un error al recuperar metadatos de campo, se devuelve false.

Clave Descripción

Nombre

Nombre de la columna a la que corresponde el campo.

Tipo

Valor numérico que corresponde a un tipo de SQL.

Tamaño

Número de caracteres para campos de tipo de caracteres (char(n), Varchar(n), nchar(n), nvarchar(n), XML). Número de bytes para campos de tipo binario (binary(n), varbinary(n), tipo definido por el usuario). NULL para otros tipos de datos de SQL Server.

Precisión

Precisión para tipos de precisión de variable (real, numeric, decimal, datetime2, datetimeoffset y time); NULL para otros tipos de datos de SQL Server.

Escala

La escala para tipos de escala de variable (numeric, decimal, datetime2, datetimeoffset y time). NULL para otros tipos de datos de SQL Server.

Aceptación de valores NULL

Un valor enumerado que indica si la columna acepta valores NULL (SQLSRV_NULLABLE_YES), si la columna no acepta valores NULL (SQLSRV_NULLABLE_NO) o no se sabe si la columna acepta valores NULL (SQLSRV_NULLABLE_UNKNOWN).

En la tabla siguiente se ofrece más información sobre las claves de cada submatriz; consulte la documentación de SQL Server para obtener más información sobre estos tipos.

Tipo de datos de SQL Server 2008 Tipo Precisión mín/máx Escala mín/máx Tamaño

bigint

-5

8

binary

-2

0 < n < 8000 1

bit

-7

char

1

0 < n < 8000 1

date

91

10/10

0/0

datetime

93

23/23

3/3

datetime2

93

19/27

0/7

datetimeoffset

-155

26/34

0/7

decimal

3

1/38

0/valor de precisión

float

6

4/8

image

-4

2 GB

int

4

money

3

19/19

4/4

nchar

-8

0 < n < 4000 1

ntext

-10

1 GB

numeric

2

1/38

0/valor de precisión

nvarchar

-9

0 < n < 4000 1

real

7

4/4

smalldatetime

93

16/16

0/0

smallint

5

2 bytes

smallmoney

3

10/10

4/4

text

-1

2 GB

time

-154

8/16

0/7

timestamp

-2

8 bytes

tinyint

-6

1 byte

udt

-151

variable

uniqueidentifier

-11

16

varbinary

-3

0 < n < 8000 1

varchar

12

0 < n < 8000 1

xml

-152

0

(1) Cero (0) indica que se admite el tamaño máximo.

La clave con valores nulos permitidos puede ser sí o no.

Ejemplo

En el ejemplo siguiente se crea un recurso de instrucción y, a continuación, se recuperan y se muestran los metadatos de campo. En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.

<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Prepare the statement. */
$tsql = "SELECT ReviewerName, Comments FROM Production.ProductReview";
$stmt = sqlsrv_prepare( $conn, $tsql);

/* Get and display field metadata. */
foreach( sqlsrv_field_metadata( $stmt) as $fieldMetadata)
{
      foreach( $fieldMetadata as $name => $value)
      {
           echo "$name: $value\n";
      }
      echo "\n";
}

/* Note: sqlsrv_field_metadata can be called on any statement
resource, pre- or post-execution. */

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Vea también

Conceptos

Constantes SQLSRV
Acerca de ejemplos de código en la documentación

Otros recursos

Referencia de la API (Controlador SQL Server para PHP)