Está en la página 1de 239

UNIVERSIDAD POLITÉCNICA DE TULANCINGO.

Parcial 3
Actividad 6 “Indagación de Funciones de Sistema”.
Por
Nombre de los alumnos):

Brandon Aguilar Tabales.


Ariadna Aguilar Tello.
Salvador Mendoza García.

U Carrera:

Ingeniería en Sistemas Computacionales.

P Asignatura:

Administración de Bases de Datos.

T
Nombre del Catedrático:

Mtro. Juan Martin Hernández Ramírez

ISC 62
Sexto Cuatrimestre
Tulancingo de Bravo, Hidalgo
Mayo – Agosto 2022.

pág. 1
Tabla de Contenidos
¿Qué son las funciones de sistema? ..................................................................................... 30

Aggregate Functions ................................................................................................................... 30

Avg() ................................................................................................................................................. 31

Definición ................................................................................................................................... 30
Sintaxis ....................................................................................................................................... 31
Ejemplo ....................................................................................................................................... 31
Binary_checksum() ..................................................................................................................... 31

Definición ................................................................................................................................... 31
Sintaxis ....................................................................................................................................... 31
Ejemplo ....................................................................................................................................... 31
Checksum().................................................................................................................................... 32

Definición ................................................................................................................................... 32
Sintaxis ....................................................................................................................................... 32
Ejemplo ....................................................................................................................................... 32
Checksum_agg() ........................................................................................................................... 32

Definición ................................................................................................................................... 32
Sintaxis ....................................................................................................................................... 32
Ejemplo ....................................................................................................................................... 32
Count() ............................................................................................................................................ 33

Definición ................................................................................................................................... 33
Sintaxis ....................................................................................................................................... 33
Ejemplo ....................................................................................................................................... 33
Count_big() .................................................................................................................................... 33

Definición ................................................................................................................................... 33
Sintaxis ....................................................................................................................................... 33
Ejemplo ....................................................................................................................................... 33
Grouping() ...................................................................................................................................... 35

Definición ................................................................................................................................... 35
Sintaxis ....................................................................................................................................... 35

pág. 2
Ejemplo ....................................................................................................................................... 35
Grouping_Id() ................................................................................................................................ 36

Definición ................................................................................................................................... 35
Sintaxis ....................................................................................................................................... 35
Ejemplo ....................................................................................................................................... 35
Max() ................................................................................................................................................ 37

Definición ................................................................................................................................... 37
Sintaxis ....................................................................................................................................... 37
Ejemplo ....................................................................................................................................... 37
Min() ................................................................................................................................................. 37

Definición ................................................................................................................................... 37
Sintaxis ....................................................................................................................................... 37
Ejemplo ....................................................................................................................................... 37
Stdev().............................................................................................................................................. 37

Definición ................................................................................................................................... 37
Sintaxis ....................................................................................................................................... 37
Ejemplo ....................................................................................................................................... 37
Stdevp() ........................................................................................................................................... 38

Definición ................................................................................................................................... 38
Sintaxis ....................................................................................................................................... 38
Ejemplo ....................................................................................................................................... 38
Sum() ............................................................................................................................................... 39

Definición ................................................................................................................................... 38
Sintaxis ....................................................................................................................................... 38
Ejemplo ....................................................................................................................................... 38
Var() ................................................................................................................................................. 39

Definición ................................................................................................................................... 39
Sintaxis ....................................................................................................................................... 39
Ejemplo ....................................................................................................................................... 39
Varp() ............................................................................................................................................... 40

Definición ................................................................................................................................... 40

pág. 3
Sintaxis ....................................................................................................................................... 40
Ejemplo ....................................................................................................................................... 40
Configuration Functions ........................................................................................................... 40

ConnectionProperty() .................................................................................................................. 41

Definición ................................................................................................................................... 41
Sintaxis ....................................................................................................................................... 41
Ejemplo ....................................................................................................................................... 41
@@Datefirst ................................................................................................................................... 41

Definición ................................................................................................................................... 41
Sintaxis ....................................................................................................................................... 41
Ejemplo ....................................................................................................................................... 41
@@Dbts ........................................................................................................................................... 42

Definición ................................................................................................................................... 41
Sintaxis ....................................................................................................................................... 43
Ejemplo ....................................................................................................................................... 43
@@Langid ....................................................................................................................................... 45

Definición ................................................................................................................................... 45
Sintaxis ....................................................................................................................................... 45
Ejemplo ....................................................................................................................................... 45
@@Language ................................................................................................................................. 45

Definición ................................................................................................................................... 45
Sintaxis ....................................................................................................................................... 45
Ejemplo ....................................................................................................................................... 45
@@Lock_Timeout ......................................................................................................................... 46

Definición ................................................................................................................................... 45
Sintaxis ....................................................................................................................................... 45
Ejemplo ....................................................................................................................................... 45
@@Max_Connections .................................................................................................................. 47

Definición ................................................................................................................................... 47
Sintaxis ....................................................................................................................................... 47
Ejemplo ....................................................................................................................................... 47

pág. 4
@@Max_Precision ........................................................................................................................ 47

Definición ................................................................................................................................... 47
Sintaxis ....................................................................................................................................... 47
Ejemplo ....................................................................................................................................... 47
@@Nestlevel ................................................................................................................................... 48

Definición ................................................................................................................................... 47
Sintaxis ....................................................................................................................................... 47
Ejemplo ....................................................................................................................................... 47
@@Options ..................................................................................................................................... 49

Definición ................................................................................................................................... 49
Sintaxis ....................................................................................................................................... 49
Ejemplo ....................................................................................................................................... 49
@@Remserver ................................................................................................................................ 49

Definición ................................................................................................................................... 49
Sintaxis ....................................................................................................................................... 49
Ejemplo ....................................................................................................................................... 49
@@Servername ............................................................................................................................. 50

Definición ................................................................................................................................... 50
Sintaxis ....................................................................................................................................... 50
Ejemplo ....................................................................................................................................... 50
@@Servicename............................................................................................................................ 50

Definición ................................................................................................................................... 50
Sintaxis ....................................................................................................................................... 50
Ejemplo ....................................................................................................................................... 50
@@Spid ........................................................................................................................................... 50

Definición ................................................................................................................................... 50
Sintaxis ....................................................................................................................................... 50
Ejemplo ....................................................................................................................................... 50
@@Textsize..................................................................................................................................... 52

Definición ................................................................................................................................... 52
Sintaxis ....................................................................................................................................... 52

pág. 5
Ejemplo ....................................................................................................................................... 52
@@Version ..................................................................................................................................... 52

Definición ................................................................................................................................... 52
Sintaxis ....................................................................................................................................... 52
Ejemplo ....................................................................................................................................... 52
Cursor Functions ........................................................................................................................ 52

@@Cursor_Rows .......................................................................................................................... 54

Definición ................................................................................................................................... 54
Sintaxis ....................................................................................................................................... 54
Ejemplo ....................................................................................................................................... 54
Cursor_Status() ............................................................................................................................ 55

Definición ................................................................................................................................... 54
Sintaxis ....................................................................................................................................... 54
Ejemplo ....................................................................................................................................... 54
@@Fetch_Status........................................................................................................................... 56

Definición ................................................................................................................................... 56
Sintaxis ....................................................................................................................................... 56
Ejemplo ....................................................................................................................................... 56
Date and Time Functions ......................................................................................................... 56

Current_Timestamp .................................................................................................................... 57

Definición ................................................................................................................................... 57
Sintaxis ....................................................................................................................................... 57
Ejemplo ....................................................................................................................................... 57
Dateadd() ........................................................................................................................................ 58

Definición ................................................................................................................................... 57
Sintaxis ....................................................................................................................................... 59
Ejemplo ....................................................................................................................................... 59
Datediff() ......................................................................................................................................... 61

Definición ................................................................................................................................... 61
Sintaxis ....................................................................................................................................... 61
Ejemplo ....................................................................................................................................... 61

pág. 6
Datename() .................................................................................................................................... 61

Definición ................................................................................................................................... 61
Sintaxis ....................................................................................................................................... 61
Ejemplo ....................................................................................................................................... 61
Datepart() ....................................................................................................................................... 63

Definición ................................................................................................................................... 63
Sintaxis ....................................................................................................................................... 63
Ejemplo ....................................................................................................................................... 63
Day()................................................................................................................................................. 63

Definición ................................................................................................................................... 63
Sintaxis ....................................................................................................................................... 63
Ejemplo ....................................................................................................................................... 63
Getdate() ......................................................................................................................................... 63

Definición ................................................................................................................................... 63
Sintaxis ....................................................................................................................................... 64
Ejemplo ....................................................................................................................................... 64
Getutcdate() ................................................................................................................................... 67

Definición ................................................................................................................................... 66
Sintaxis ....................................................................................................................................... 66
Ejemplo ....................................................................................................................................... 66
Isdate()............................................................................................................................................. 68

Definición ................................................................................................................................... 68
Sintaxis ....................................................................................................................................... 68
Ejemplo ....................................................................................................................................... 68
Month()............................................................................................................................................ 68

Definición ................................................................................................................................... 68
Sintaxis ....................................................................................................................................... 68
Ejemplo ....................................................................................................................................... 68
Sysdatetime()................................................................................................................................. 68

Definición ................................................................................................................................... 68
Sintaxis ....................................................................................................................................... 68

pág. 7
Ejemplo ....................................................................................................................................... 68
Sysdatetimeoffset() ...................................................................................................................... 70

Definición ................................................................................................................................... 70
Sintaxis ....................................................................................................................................... 70
Ejemplo ....................................................................................................................................... 70
Sysutcdatetime() .......................................................................................................................... 73

Definición ................................................................................................................................... 70
Sintaxis ....................................................................................................................................... 72
Ejemplo ....................................................................................................................................... 72
Switchoffset() ................................................................................................................................. 74

Definición ................................................................................................................................... 74
Sintaxis ....................................................................................................................................... 74
Ejemplo ....................................................................................................................................... 74
Todatetimeoffset() ........................................................................................................................ 75

Definición ................................................................................................................................... 74
Sintaxis ....................................................................................................................................... 75
Ejemplo ....................................................................................................................................... 75
Year()................................................................................................................................................ 75

Definición ................................................................................................................................... 75
Sintaxis ....................................................................................................................................... 75
Ejemplo ....................................................................................................................................... 75
Mathematical Functions ........................................................................................................... 75

Abs() ................................................................................................................................................. 77

Definición ................................................................................................................................... 77
Sintaxis ....................................................................................................................................... 77
Ejemplo ....................................................................................................................................... 77
Acos() ............................................................................................................................................... 77

Definición ................................................................................................................................... 77
Sintaxis ....................................................................................................................................... 77
Ejemplo ....................................................................................................................................... 77
Asin() ................................................................................................................................................ 79

pág. 8
Definición ................................................................................................................................... 79
Sintaxis ....................................................................................................................................... 79
Ejemplo ....................................................................................................................................... 79
Atan() ............................................................................................................................................... 81

Definición ................................................................................................................................... 81
Sintaxis ....................................................................................................................................... 81
Ejemplo ....................................................................................................................................... 81
Atn2() ............................................................................................................................................... 83

Definición ................................................................................................................................... 83
Sintaxis ....................................................................................................................................... 83
Ejemplo ....................................................................................................................................... 83
Ceiling() ........................................................................................................................................... 83

Definición ................................................................................................................................... 83
Sintaxis ....................................................................................................................................... 83
Ejemplo ....................................................................................................................................... 83
Cos() ................................................................................................................................................. 85

Definición ................................................................................................................................... 85
Sintaxis ....................................................................................................................................... 85
Ejemplo ....................................................................................................................................... 85
Cot().................................................................................................................................................. 85

Definición ................................................................................................................................... 85
Sintaxis ....................................................................................................................................... 85
Ejemplo ....................................................................................................................................... 85
Degrees() ......................................................................................................................................... 87

Definición ................................................................................................................................... 87
Sintaxis ....................................................................................................................................... 87
Ejemplo ....................................................................................................................................... 87
Exp() ................................................................................................................................................. 87

Definición ................................................................................................................................... 87
Sintaxis ....................................................................................................................................... 87
Ejemplo ....................................................................................................................................... 87

pág. 9
Floor() .............................................................................................................................................. 89

Definición ................................................................................................................................... 89
Sintaxis ....................................................................................................................................... 89
Ejemplo ....................................................................................................................................... 89
Log().................................................................................................................................................. 89

Definición ................................................................................................................................... 89
Sintaxis ....................................................................................................................................... 89
Ejemplo ....................................................................................................................................... 89
Log100() .......................................................................................................................................... 91

Definición ................................................................................................................................... 91
Sintaxis ....................................................................................................................................... 91
Ejemplo ....................................................................................................................................... 91
Pi()..................................................................................................................................................... 91

Definición ................................................................................................................................... 91
Sintaxis ....................................................................................................................................... 91
Ejemplo ....................................................................................................................................... 91
Power()............................................................................................................................................. 93

Definición ................................................................................................................................... 93
Sintaxis ....................................................................................................................................... 93
Ejemplo ....................................................................................................................................... 93
Radians() ........................................................................................................................................ 93

Definición ................................................................................................................................... 93
Sintaxis ....................................................................................................................................... 93
Ejemplo ....................................................................................................................................... 93
Rand() .............................................................................................................................................. 95

Definición ................................................................................................................................... 95
Sintaxis ....................................................................................................................................... 95
Ejemplo ....................................................................................................................................... 95
Round() ........................................................................................................................................... 95

Definición ................................................................................................................................... 95
Sintaxis ....................................................................................................................................... 95

pág. 10
Ejemplo ....................................................................................................................................... 95
Sign() ................................................................................................................................................ 96

Definición ................................................................................................................................... 96
Sintaxis ....................................................................................................................................... 96
Ejemplo ....................................................................................................................................... 96
Sin() .................................................................................................................................................. 96

Definición ................................................................................................................................... 96
Sintaxis ....................................................................................................................................... 96
Ejemplo ....................................................................................................................................... 96
Sqrt() ................................................................................................................................................ 98

Definición ................................................................................................................................... 98
Sintaxis ....................................................................................................................................... 98
Ejemplo ....................................................................................................................................... 98
Square()......................................................................................................................................... 100

Definición ................................................................................................................................... 98
Sintaxis ..................................................................................................................................... 100
Ejemplo ..................................................................................................................................... 100
Tan() ............................................................................................................................................... 100

Definición ................................................................................................................................. 100


Sintaxis ..................................................................................................................................... 100
Ejemplo ..................................................................................................................................... 100
Metadata Functions.................................................................................................................. 100

Col_Length()................................................................................................................................. 102

Definición ................................................................................................................................. 102


Sintaxis ..................................................................................................................................... 102
Ejemplo ..................................................................................................................................... 102
Col_Name() ................................................................................................................................... 102

Definición ................................................................................................................................. 102


Sintaxis ..................................................................................................................................... 102
Ejemplo ..................................................................................................................................... 102
Columnproperty() ...................................................................................................................... 104

pág. 11
Definición ................................................................................................................................. 104
Sintaxis ..................................................................................................................................... 104
Ejemplo ..................................................................................................................................... 104
DatabaseProperty().................................................................................................................... 104

Definición ................................................................................................................................. 104


Sintaxis ..................................................................................................................................... 104
Ejemplo ..................................................................................................................................... 104
DatabasePropertyex() ............................................................................................................... 104

Definición ................................................................................................................................. 104


Sintaxis ..................................................................................................................................... 104
Ejemplo ..................................................................................................................................... 104
Db_Id() ........................................................................................................................................... 106

Definición ................................................................................................................................. 106


Sintaxis ..................................................................................................................................... 106
Ejemplo ..................................................................................................................................... 106
Db_Name().................................................................................................................................... 106

Definición ................................................................................................................................. 106


Sintaxis ..................................................................................................................................... 106
Ejemplo ..................................................................................................................................... 106
File_Id() ......................................................................................................................................... 106

Definición ................................................................................................................................. 106


Sintaxis ..................................................................................................................................... 106
Ejemplo ..................................................................................................................................... 106
File_Name() .................................................................................................................................. 108

Definición ................................................................................................................................. 108


Sintaxis ..................................................................................................................................... 108
Ejemplo ..................................................................................................................................... 108
Filegroup_Id() .............................................................................................................................. 108

Definición ................................................................................................................................. 108


Sintaxis ..................................................................................................................................... 108
Ejemplo ..................................................................................................................................... 108

pág. 12
Filegroup_Name() ....................................................................................................................... 108

Definición ................................................................................................................................. 108


Sintaxis ..................................................................................................................................... 109
Ejemplo ..................................................................................................................................... 109
Filegroupproperty().................................................................................................................... 111

Definición ................................................................................................................................. 111


Sintaxis ..................................................................................................................................... 111
Ejemplo ..................................................................................................................................... 111
Fileproperty() ............................................................................................................................... 111

Definición ................................................................................................................................. 111


Sintaxis ..................................................................................................................................... 111
Ejemplo ..................................................................................................................................... 111
::fn_Listextendedproperty() ..................................................................................................... 114

Definición ................................................................................................................................. 111


Sintaxis ..................................................................................................................................... 113
Ejemplo ..................................................................................................................................... 113
Fulltextcatalogproperty() ......................................................................................................... 115

Definición ................................................................................................................................. 115


Sintaxis ..................................................................................................................................... 115
Ejemplo ..................................................................................................................................... 115
Fulltextserviceproperty().......................................................................................................... 115

Definición ................................................................................................................................. 115


Sintaxis ..................................................................................................................................... 115
Ejemplo ..................................................................................................................................... 115
Index_Col() ................................................................................................................................... 116

Definición ................................................................................................................................. 115


Sintaxis ..................................................................................................................................... 117
Ejemplo ..................................................................................................................................... 117
Indexkey_Property() .................................................................................................................. 119

Definición ................................................................................................................................. 119


Sintaxis ..................................................................................................................................... 119

pág. 13
Ejemplo ..................................................................................................................................... 119
Indexproperty() ........................................................................................................................... 119

Definición ................................................................................................................................. 119


Sintaxis ..................................................................................................................................... 120
Ejemplo ..................................................................................................................................... 120
Object_Id() .................................................................................................................................... 122

Definición ................................................................................................................................. 122


Sintaxis ..................................................................................................................................... 122
Ejemplo ..................................................................................................................................... 122
Object_Name() ............................................................................................................................. 122

Definición ................................................................................................................................. 122


Sintaxis ..................................................................................................................................... 122
Ejemplo ..................................................................................................................................... 122
Objectproperty() ......................................................................................................................... 124

Definición ................................................................................................................................. 124


Sintaxis ..................................................................................................................................... 124
Ejemplo ..................................................................................................................................... 124
Objectpropertyex() ..................................................................................................................... 124

Definición ................................................................................................................................. 124


Sintaxis ..................................................................................................................................... 124
Ejemplo ..................................................................................................................................... 124
@@Procid().................................................................................................................................... 126

Definición ................................................................................................................................. 126


Sintaxis ..................................................................................................................................... 126
Ejemplo ..................................................................................................................................... 126
Sql_Variant_Property() ............................................................................................................. 128

Definición ................................................................................................................................. 128


Sintaxis ..................................................................................................................................... 128
Ejemplo ..................................................................................................................................... 128
Typeproperty() ............................................................................................................................. 131

Definición ................................................................................................................................. 128

pág. 14
Sintaxis ..................................................................................................................................... 130
Ejemplo ..................................................................................................................................... 130
Change_tracking_current_version() ..................................................................................... 132

Definición ................................................................................................................................. 132


Sintaxis ..................................................................................................................................... 132
Ejemplo ..................................................................................................................................... 132
Change_Tracking_Is_Column_In_Mask() ........................................................................... 132

Definición ................................................................................................................................. 132


Sintaxis ..................................................................................................................................... 132
Ejemplo ..................................................................................................................................... 132
Other Functions ......................................................................................................................... 133

App_Name().................................................................................................................................. 134

Definición ................................................................................................................................. 134


Sintaxis ..................................................................................................................................... 134
Ejemplo ..................................................................................................................................... 134
Cast() ............................................................................................................................................. 134

Definición ................................................................................................................................. 134


Sintaxis ..................................................................................................................................... 134
Ejemplo ..................................................................................................................................... 134
Coalesce() ..................................................................................................................................... 136

Definición ................................................................................................................................. 136


Sintaxis ..................................................................................................................................... 136
Ejemplo ..................................................................................................................................... 136
Collationproperty() .................................................................................................................... 136

Definición ................................................................................................................................. 136


Sintaxis ..................................................................................................................................... 136
Ejemplo ..................................................................................................................................... 136
Columns_Update() ..................................................................................................................... 137

Definición ................................................................................................................................. 136


Sintaxis ..................................................................................................................................... 138
Ejemplo ..................................................................................................................................... 138

pág. 15
Convert() ....................................................................................................................................... 140

Definición ................................................................................................................................. 140


Sintaxis ..................................................................................................................................... 140
Ejemplo ..................................................................................................................................... 140
Current_User() ............................................................................................................................ 140

Definición ................................................................................................................................. 140


Sintaxis ..................................................................................................................................... 140
Ejemplo ..................................................................................................................................... 140
Datalength() ................................................................................................................................. 142

Definición ................................................................................................................................. 140


Sintaxis ..................................................................................................................................... 141
Ejemplo ..................................................................................................................................... 141
@@Error ........................................................................................................................................ 143

Definición ................................................................................................................................. 143


Sintaxis ..................................................................................................................................... 143
Ejemplo ..................................................................................................................................... 143
fn_Helpcollations() ..................................................................................................................... 143

Definición ................................................................................................................................. 143


Sintaxis ..................................................................................................................................... 143
Ejemplo ..................................................................................................................................... 143
::fn_Servershareddrives()......................................................................................................... 145

Definición ................................................................................................................................. 145


Sintaxis ..................................................................................................................................... 145
Ejemplo ..................................................................................................................................... 145
::fn_Virtualservernodes() ......................................................................................................... 145

Definición ................................................................................................................................. 145


Sintaxis ..................................................................................................................................... 145
Ejemplo ..................................................................................................................................... 145
Formatmessage() ........................................................................................................................ 145

Definición ................................................................................................................................. 145


Sintaxis ..................................................................................................................................... 145

pág. 16
Ejemplo ..................................................................................................................................... 145
Getansinull()................................................................................................................................ 147

Definción .................................................................................................................................. 147


Sintaxis ..................................................................................................................................... 147
Ejemplo ..................................................................................................................................... 147
Host_Id() ....................................................................................................................................... 147

Definición ................................................................................................................................. 147


Sintaxis ..................................................................................................................................... 147
Ejemplo ..................................................................................................................................... 147
Host_Name() ................................................................................................................................ 149

Definición ................................................................................................................................. 149


Sintaxis ..................................................................................................................................... 149
Ejemplo ..................................................................................................................................... 149
Ident_Current() ........................................................................................................................... 149

Definición ................................................................................................................................. 149


Sintaxis ..................................................................................................................................... 149
Ejemplo ..................................................................................................................................... 149
Ident_Incr() .................................................................................................................................. 151

Definición ................................................................................................................................. 151


Sintaxis ..................................................................................................................................... 151
Ejemplo ..................................................................................................................................... 151
Ident_Seed() ................................................................................................................................. 151

Definición ................................................................................................................................. 151


Sintaxis ..................................................................................................................................... 151
Ejemplo ..................................................................................................................................... 151
@@Identity ................................................................................................................................... 152

Definición ................................................................................................................................. 152


Sintaxis ..................................................................................................................................... 152
Ejemplo ..................................................................................................................................... 152
Isnull() ........................................................................................................................................... 152

Definición ................................................................................................................................. 152

pág. 17
Sintaxis ..................................................................................................................................... 152
Ejemplo ..................................................................................................................................... 152
Isnumeric() ................................................................................................................................... 154

Definición ................................................................................................................................. 154


Sintaxis ..................................................................................................................................... 154
Ejemplo ..................................................................................................................................... 154
Newid()........................................................................................................................................... 154

Definición ................................................................................................................................. 154


Sintaxis ..................................................................................................................................... 154
Ejemplo ..................................................................................................................................... 154
Nullif() ............................................................................................................................................ 155

Definición ................................................................................................................................. 155


Sintaxis ..................................................................................................................................... 155
Ejemplo ..................................................................................................................................... 155
Parsename() ................................................................................................................................. 157

Definición ................................................................................................................................. 157


Sintaxis ..................................................................................................................................... 157
Ejemplo ..................................................................................................................................... 157
Permissions() ............................................................................................................................... 157

Definición ................................................................................................................................. 157


Sintaxis ..................................................................................................................................... 157
Ejemplo ..................................................................................................................................... 157
@@Rowcount ............................................................................................................................... 159

Definición ................................................................................................................................. 159


Sintaxis ..................................................................................................................................... 159
Ejemplo ..................................................................................................................................... 159
Rowcount_Big() ........................................................................................................................... 159

Definición ................................................................................................................................. 159


Sintaxis ..................................................................................................................................... 159
Ejemplo ..................................................................................................................................... 159
Scope_Identity() .......................................................................................................................... 159

pág. 18
Definición ................................................................................................................................. 159
Sintaxis ..................................................................................................................................... 159
Ejemplo ..................................................................................................................................... 159
Severproperty() ........................................................................................................................... 161

Definición ................................................................................................................................. 161


Sintaxis ..................................................................................................................................... 161
Ejemplo ..................................................................................................................................... 161
Sessionproperty() ....................................................................................................................... 161

Definición ................................................................................................................................. 161


Sintaxis ..................................................................................................................................... 161
Ejemplo ..................................................................................................................................... 161
Session_User() ............................................................................................................................ 162

Definición ................................................................................................................................. 162


Sintaxis ..................................................................................................................................... 162
Ejemplo ..................................................................................................................................... 162
Stats_Date() ................................................................................................................................. 162

Definición ................................................................................................................................. 162


Sintaxis ..................................................................................................................................... 162
Ejemplo ..................................................................................................................................... 162
System_User() ............................................................................................................................. 164

Definición ................................................................................................................................. 164


Sintaxis ..................................................................................................................................... 164
Ejemplo ..................................................................................................................................... 164
@@Trancount .............................................................................................................................. 164

Definición ................................................................................................................................. 164


Sintaxis ..................................................................................................................................... 164
Ejemplo ..................................................................................................................................... 164
Update() ........................................................................................................................................ 166

Definición ................................................................................................................................. 166


Sintaxis ..................................................................................................................................... 166
Ejemplo ..................................................................................................................................... 166

pág. 19
User_Name() ................................................................................................................................ 167

Definición ................................................................................................................................. 167


Sintaxis ..................................................................................................................................... 167
Ejemplo ..................................................................................................................................... 167
Hierarchy Id Functions............................................................................................................ 167

GetRoot() ....................................................................................................................................... 168

Definición ................................................................................................................................. 168


Sintaxis ..................................................................................................................................... 168
Ejemplo ..................................................................................................................................... 168
GetDescendant() ........................................................................................................................ 168

Definición ................................................................................................................................. 168


Sintaxis ..................................................................................................................................... 168
Ejemplo ..................................................................................................................................... 168
IsDescendantOf() ....................................................................................................................... 170

Definición ................................................................................................................................. 170


Sintaxis ..................................................................................................................................... 170
Ejemplo ..................................................................................................................................... 170
GetLevel() ...................................................................................................................................... 170

Definición ................................................................................................................................. 170


Sintaxis ..................................................................................................................................... 170
Ejemplo ..................................................................................................................................... 170
GetAncestor() .............................................................................................................................. 172

Definición ................................................................................................................................. 172


Sintaxis ..................................................................................................................................... 172
Ejemplo ..................................................................................................................................... 172
GetReparentedValue() .............................................................................................................. 172

Definición ................................................................................................................................. 172


Sintaxis ..................................................................................................................................... 172
Ejemplo ..................................................................................................................................... 172
ToString() ...................................................................................................................................... 174

Definición ................................................................................................................................. 174

pág. 20
Sintaxis ..................................................................................................................................... 174
Ejemplo ..................................................................................................................................... 174
Rowset Functions ...................................................................................................................... 174

Containstable() ........................................................................................................................... 176

Definición ................................................................................................................................. 176


Sintaxis ..................................................................................................................................... 176
Ejemplo ..................................................................................................................................... 176
Freetexttable() ............................................................................................................................. 178

Definición ................................................................................................................................. 178


Sintaxis ..................................................................................................................................... 179
Ejemplo ..................................................................................................................................... 179
Opendatasource() ...................................................................................................................... 181

Definición ................................................................................................................................. 181


Sintaxis ..................................................................................................................................... 181
Ejemplo ..................................................................................................................................... 181
Openquery() ................................................................................................................................. 182

Definición ................................................................................................................................. 181


Sintaxis ..................................................................................................................................... 183
Ejemplo ..................................................................................................................................... 183
Openrowset() ............................................................................................................................... 185

Definición ................................................................................................................................. 185


Sintaxis ..................................................................................................................................... 185
Ejemplo ..................................................................................................................................... 185
Openxml() ..................................................................................................................................... 188

Definición ................................................................................................................................. 188


Sintaxis ..................................................................................................................................... 188
Ejemplo ..................................................................................................................................... 188
String_Split() ............................................................................................................................... 191

Definición ................................................................................................................................. 191


Sintaxis ..................................................................................................................................... 191
Ejemplo ..................................................................................................................................... 191

pág. 21
CHANGETABLE(CHANGES)................................................................................................... 191

Definición ................................................................................................................................. 191


Sintaxis ..................................................................................................................................... 191
Ejemplo ..................................................................................................................................... 191
CHANGETABLE(VERSION) .................................................................................................... 193

Definición ................................................................................................................................. 193


Sintaxis ..................................................................................................................................... 193
Ejemplo ..................................................................................................................................... 193
Security Functions .................................................................................................................... 194

::fn_Trace_Geteventinfo() ......................................................................................................... 195

Definición ................................................................................................................................. 195


Sintaxis ..................................................................................................................................... 195
Ejemplo ..................................................................................................................................... 195
::fn_Trace_Getfilterinfo() .......................................................................................................... 195

Definición ................................................................................................................................. 195


Sintaxis ..................................................................................................................................... 195
Ejemplo ..................................................................................................................................... 195
::fn_Trace_Getinfo() ................................................................................................................... 195

Definición ................................................................................................................................. 195


Sintaxis ..................................................................................................................................... 195
Ejemplo ..................................................................................................................................... 195
::fn_Trace_Gettable() ................................................................................................................. 197

Definición ................................................................................................................................. 197


Sintaxis ..................................................................................................................................... 197
Ejemplo ..................................................................................................................................... 197
Has_Dbaccess() .......................................................................................................................... 197

Definición ................................................................................................................................. 197


Sintaxis ..................................................................................................................................... 197
Ejemplo ..................................................................................................................................... 197
original_db_name() .................................................................................................................... 198

Definición ................................................................................................................................. 197

pág. 22
Sintaxis ..................................................................................................................................... 199
Ejemplo ..................................................................................................................................... 199
Is_Member() ................................................................................................................................. 201

Definición ................................................................................................................................. 201


Sintaxis ..................................................................................................................................... 201
Ejemplo ..................................................................................................................................... 201
Is_Srvrolemember() ................................................................................................................... 201

Definición ................................................................................................................................. 201


Sintaxis ..................................................................................................................................... 201
Ejemplo ..................................................................................................................................... 201
Suser_Sid() ................................................................................................................................... 203

Definición ................................................................................................................................. 203


Sintaxis ..................................................................................................................................... 203
Ejemplo ..................................................................................................................................... 203
Suser_Sname() ............................................................................................................................ 203

Definición ................................................................................................................................. 203


Sintaxis ..................................................................................................................................... 203
Ejemplo ..................................................................................................................................... 203
User() ............................................................................................................................................. 203

Definición ................................................................................................................................. 203


Sintaxis ..................................................................................................................................... 203
Ejemplo ..................................................................................................................................... 203
User_Id() ....................................................................................................................................... 205

Definición ................................................................................................................................. 205


Sintaxis ..................................................................................................................................... 205
Ejemplo ..................................................................................................................................... 205
User_Name() ................................................................................................................................ 205

Definición ................................................................................................................................. 205


Sintaxis ..................................................................................................................................... 205
Ejemplo ..................................................................................................................................... 205
String Functions ........................................................................................................................ 205

pág. 23
Ascii() ............................................................................................................................................. 206

Definición ................................................................................................................................. 206


Sintaxis ..................................................................................................................................... 206
Ejemplo ..................................................................................................................................... 206
Char()............................................................................................................................................. 206

Definición ................................................................................................................................. 206


Sintaxis ..................................................................................................................................... 206
Ejemplo ..................................................................................................................................... 206
Charindex() .................................................................................................................................. 207

Definición ................................................................................................................................. 207


Sintaxis ..................................................................................................................................... 207
Ejemplo ..................................................................................................................................... 207
Difference() ................................................................................................................................... 207

Definición ................................................................................................................................. 207


Sintaxis ..................................................................................................................................... 207
Ejemplo ..................................................................................................................................... 207
Left() ............................................................................................................................................... 209

Definición ................................................................................................................................. 209


Sintaxis ..................................................................................................................................... 209
Ejemplo ..................................................................................................................................... 209
Len() ............................................................................................................................................... 209

Definición ................................................................................................................................. 209


Sintaxis ..................................................................................................................................... 209
Ejemplo ..................................................................................................................................... 209
Lower() ........................................................................................................................................... 210

Definición ................................................................................................................................. 210


Sintaxis ..................................................................................................................................... 210
Ejemplo ..................................................................................................................................... 210
Ltrim() ............................................................................................................................................ 210

Definición ................................................................................................................................. 210


Sintaxis ..................................................................................................................................... 210

pág. 24
Ejemplo ..................................................................................................................................... 210
Nchar()........................................................................................................................................... 211

Definición ................................................................................................................................. 211


Sintaxis ..................................................................................................................................... 211
Ejemplo ..................................................................................................................................... 211
Patindex() ..................................................................................................................................... 211

Definición ................................................................................................................................. 211


Sintaxis ..................................................................................................................................... 211
Ejemplo ..................................................................................................................................... 211
Quotename() ................................................................................................................................ 212

Definición ................................................................................................................................. 212


Sintaxis ..................................................................................................................................... 213
Ejemplo ..................................................................................................................................... 213
Replace() ....................................................................................................................................... 215

Definición ................................................................................................................................. 215


Sintaxis ..................................................................................................................................... 215
Ejemplo ..................................................................................................................................... 215
Replicate()..................................................................................................................................... 215

Definición ................................................................................................................................. 215


Sintaxis ..................................................................................................................................... 215
Ejemplo ..................................................................................................................................... 215
Reverse() ....................................................................................................................................... 216

Definición ................................................................................................................................. 216


Sintaxis ..................................................................................................................................... 216
Ejemplo ..................................................................................................................................... 216
Right() ............................................................................................................................................ 216

Definición ................................................................................................................................. 216


Sintaxis ..................................................................................................................................... 216
Ejemplo ..................................................................................................................................... 216
Rtrim() ........................................................................................................................................... 217

Definición ................................................................................................................................. 217

pág. 25
Sintaxis ..................................................................................................................................... 217
Ejemplo ..................................................................................................................................... 217
Soundex() ..................................................................................................................................... 217

Definición ................................................................................................................................. 217


Sintaxis ..................................................................................................................................... 217
Ejemplo ..................................................................................................................................... 217
Space() ........................................................................................................................................... 218

Definición ................................................................................................................................. 218


Sintaxis ..................................................................................................................................... 218
Ejemplo ..................................................................................................................................... 218
Str() ................................................................................................................................................ 218

Definición ................................................................................................................................. 218


Sintaxis ..................................................................................................................................... 218
Ejemplo ..................................................................................................................................... 218
String_Split() ............................................................................................................................... 219

Definición ................................................................................................................................. 219


Sintaxis ..................................................................................................................................... 219
Ejemplo ..................................................................................................................................... 219
Stuff() ............................................................................................................................................. 219

Definición ................................................................................................................................. 219


Sintaxis ..................................................................................................................................... 219
Ejemplo ..................................................................................................................................... 219
Substring() ................................................................................................................................... 220

Definición ................................................................................................................................. 220


Sintaxis ..................................................................................................................................... 220
Ejemplo ..................................................................................................................................... 220
Unicode()....................................................................................................................................... 220

Definición ................................................................................................................................. 220


Sintaxis ..................................................................................................................................... 220
Ejemplo ..................................................................................................................................... 220
Upper() .......................................................................................................................................... 222

pág. 26
Definición ................................................................................................................................. 222
Sintaxis ..................................................................................................................................... 222
Ejemplo ..................................................................................................................................... 222
Trim() ............................................................................................................................................. 222

Definición ................................................................................................................................. 222


Sintaxis ..................................................................................................................................... 222
Ejemplo ..................................................................................................................................... 222
ConcatWs() ................................................................................................................................... 223

Definición ................................................................................................................................. 223


Sintaxis ..................................................................................................................................... 223
Ejemplo ..................................................................................................................................... 223
System Statistical Functions ................................................................................................. 223

@@Connections .......................................................................................................................... 224

Definición ................................................................................................................................. 224


Sintaxis ..................................................................................................................................... 224
Ejemplo ..................................................................................................................................... 224
@@Cpu_Busy .............................................................................................................................. 224

Definición ................................................................................................................................. 224


Sintaxis ..................................................................................................................................... 224
Ejemplo ..................................................................................................................................... 224
::fn_Virtualfilestats() ................................................................................................................. 226

Definición ................................................................................................................................. 226


Sintaxis ..................................................................................................................................... 226
Ejemplo ..................................................................................................................................... 226
@@Idle ........................................................................................................................................... 227

Definición ................................................................................................................................. 226


Sintaxis ..................................................................................................................................... 226
Ejemplo ..................................................................................................................................... 226
@@Io_Busy ................................................................................................................................... 228

Definición ................................................................................................................................. 228


Sintaxis ..................................................................................................................................... 228

pág. 27
Ejemplo ..................................................................................................................................... 228
@@Pack_Received ...................................................................................................................... 228

Definición ................................................................................................................................. 228


Sintaxis ..................................................................................................................................... 228
Ejemplo ..................................................................................................................................... 228
@@Pack_Sent .............................................................................................................................. 230

Definición ................................................................................................................................. 230


Sintaxis ..................................................................................................................................... 230
Ejemplo ..................................................................................................................................... 230
@@Packet_Errors ....................................................................................................................... 230

Definición ................................................................................................................................. 230


Sintaxis ..................................................................................................................................... 230
Ejemplo ..................................................................................................................................... 230
@@Timeticks ............................................................................................................................... 230

Definición ................................................................................................................................. 230


Sintaxis ..................................................................................................................................... 231
Ejemplo ..................................................................................................................................... 231
@@Total_Errors .......................................................................................................................... 233

Definición ................................................................................................................................. 233


Sintaxis ..................................................................................................................................... 233
Ejemplo ..................................................................................................................................... 233
@@Total_Read ............................................................................................................................. 234

Definición ................................................................................................................................. 233


Sintaxis ..................................................................................................................................... 233
Ejemplo ..................................................................................................................................... 233
@@Total_Write ............................................................................................................................ 234

Definición ................................................................................................................................. 234


Sintaxis ..................................................................................................................................... 234
Ejemplo ..................................................................................................................................... 234
Text and Image Functions ...................................................................................................... 235

Patindex() ..................................................................................................................................... 236

pág. 28
Definición ................................................................................................................................. 236
Sintaxis ..................................................................................................................................... 236
Ejemplo ..................................................................................................................................... 236
Textptr() ........................................................................................................................................ 237

Definición ................................................................................................................................. 236


Sintaxis ..................................................................................................................................... 236
Ejemplo ..................................................................................................................................... 236
Textvalid() ..................................................................................................................................... 238

Definición ................................................................................................................................. 238


Sintaxis ..................................................................................................................................... 238
Ejemplo ..................................................................................................................................... 238
Bibliografía ................................................................................................................................. 239

Conclusión.................................................................................................................................. 239

pág. 29
Concepto Descripción

¿Qué son las funciones de sistema?

Las siguientes funciones del sistema realizan operaciones y devuelven información sobre valores, objetos y
configuraciones en SQL Server.

Aggregate Functions

Una función agregada realiza un cálculo en un conjunto de valores y devuelve un solo valor. Excepto
por COUNT(*), las funciones agregadas ignoran los valores nulos. Las funciones agregadas a menudo se usan
con la cláusula GROUP BY de la declaración SELECT.

Todas las funciones agregadas son deterministas. En otras palabras, las funciones agregadas devuelven el
mismo valor cada vez que se las llama, cuando se las llama con un conjunto específico de valores de entrada.

Use funciones agregadas como expresiones solo en las siguientes situaciones:


• La lista de selección de una instrucción SELECT (ya sea una subconsulta o una consulta externa).
• Una cláusula HAVING.

Definición

Esta función devuelve el promedio de los valores de un


grupo. Ignora los valores nulos.

pág. 30
Sintaxis Ejemplo
Uso de AVG con DISTINCT.

Esta declaración devuelve el precio de


AVG ( [ ALL | DISTINCT ] expression lista promedio de los productos en la
) base de datos
Avg() [ OVER ( [ partition_by_clause ] AdventureWorks2012. Mediante el uso
order_by_clause ) ] de DISTINCT, el cálculo considera solo
valores únicos.

SELECT AVG(DISTINCT ListPrice)


FROM Production.Product;

Definición

Devuelve el valor de la suma de comprobación binaria calculado


sobre una fila de una tabla o sobre una lista de expresiones.

Sintaxis Ejemplo
Este ejemplo se
usa BINARY_CHECKSUM para
Binary_checksum() detectar cambios en una fila de la
BINARY_CHECKSUM ( * | expression [ tabla.
,...n ] )
USE AdventureWorks2012;
GO
CREATE TABLE myTable (column1 INT,
column2 VARCHAR(256));
GO
INSERT INTO myTable VALUES (1,
'test');
GO
SELECT BINARY_CHECKSUM(*) from
myTable;
GO
UPDATE myTable set column2 =
'TEST';
GO
SELECT BINARY_CHECKSUM(*) from
myTable;

pág. 31
GO

Definición

La CHECKSUM función devuelve el valor de la suma de


comprobación calculado sobre una fila de la tabla o sobre una lista
de expresiones. Úselo CHECKSUM para crear índices hash.

Sintaxis Ejemplo
Agrega una columna de suma de
verificación calculada a la tabla que
queremos indexar. A continuación,
crea un índice en la columna de suma
de comprobación.
Checksum()
CHECKSUM ( * | expression [ ,...n ] -- Create a checksum index.--
)
SET ARITHABORT ON;
USE AdventureWorks2012;
GO
ALTER TABLE Production.Product
ADD cs_Pname AS CHECKSUM(Name);
GO
CREATE INDEX Pname_index ON
Production.Product (cs_Pname);
GO

Definición

Esta función devuelve la suma de comprobación de los valores de


un grupo. CHECKSUM_AGG ignora los valores nulos. La cláusula
Checksum_agg() OVER puede seguir CHECKSUM_AGG.

Sintaxis Ejemplo
Este ejemplo se
CHECKSUM_AGG ( [ ALL | DISTINCT ] utiliza CHECKSUM_AGG para detectar
expression ) cambios en la Quantitycolumna de
la ProductInventorytabla en la base de
datos AdventureWorks2012.
pág. 32
--Get the checksum value before the
column value is changed.--

SELECT CHECKSUM_AGG(CAST(Quantity
AS INT))
FROM Production.ProductInventory;
GO

Definición

Esta función devuelve el número de elementos encontrados en un


grupo. COUNT opera como la función COUNT_BIG. Estas funciones
difieren solo en los tipos de datos de sus valores de retorno. COUNT
siempre devuelve un valor de tipo de datos int. COUNT_BIG siempre
devuelve un valor de tipo de datos bigint.
Count()
Sintaxis Ejemplo
-- Aggregation Function Syntax Usando COUNT y DISTINCT
COUNT ( { [ [ ALL | DISTINCT ]
expression ] | * } ) Este ejemplo devuelve la cantidad de
títulos diferentes que puede tener un
empleado de Adventure Works Cycles.

SELECT COUNT(DISTINCT Title)


FROM HumanResources.Employee;
GO

Definición

Esta función devuelve el número de elementos encontrados en un


grupo. COUNT opera como la función COUNT_BIG. Estas funciones
difieren solo en los tipos de datos de sus valores de retorno. COUNT
siempre devuelve un valor de tipo de datos int. COUNT_BIG siempre
devuelve un valor de tipo de datos bigint.
Count_big()
Sintaxis Ejemplo
Usando COUNT_BIG(*)
pág. 33
-- Aggregation Function Syntax.--
COUNT_BIG ( { [ [ ALL | DISTINCT ] Este ejemplo devuelve el número total
expression ] | * } ) de empleados de Adventure Works
Cycles.

SELECT COUNT_BIG(*)
FROM HumanResources.Employee;
GO

pág. 34
Definición

Indica si una expresión de columna especificada en una lista


GROUP BY está agregada o no. GROUPING devuelve 1 para
agregados o 0 para no agregados en el conjunto de
resultados. GROUPING solo se puede usar en las cláusulas SELECT
<select> list, HAVING y ORDER BY cuando se especifica GROUP BY.

Sintaxis Ejemplo
Grouping() El siguiente ejemplo agrupa
SalesQuotay agrega SaleYTD
cantidades en la base de datos
AdventureWorks2012. La
GROUPING función se aplica a
la SalesQuota columna.
GROUPING ( <column_expression> )
SELECT SalesQuota, SUM(SalesYTD)
'TotalSalesYTD',
GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO

Definición

Es una función que calcula el nivel de agrupación. GROUPING_ID


solo se puede usar en las cláusulas SELECT <select> list, HAVING u
ORDER BY cuando se especifica GROUP BY.

Sintaxis Ejemplo

pág. 35
Uso de GROUPING_ID para
identificar niveles de agrupación.

El siguiente ejemplo devuelve el


recuento de empleados
por Namey Titley Name, el total de la
empresa en la base de datos
GROUPING_ID ( <column_expression>[ AdventureWorks2012. GROUPING_ID()
,...n ] ) se utiliza para crear un valor para cada
Grouping_Id() fila de la Title columna que identifica
su nivel de agregación.

SELECT D.Name
,CASE
WHEN GROUPING_ID(D.Name,
E.JobTitle) = 0 THEN E.JobTitle
WHEN GROUPING_ID(D.Name,
E.JobTitle) = 1 THEN N'Total: ' +
D.Name
WHEN GROUPING_ID(D.Name,
E.JobTitle) = 3 THEN N'Company
Total:'
ELSE N'Unknown'
END AS N'Job Title'
,COUNT(E.BusinessEntityID) AS
N'Employee Count'
FROM HumanResources.Employee E
INNER JOIN
HumanResources.EmployeeDepartmentHi
story DH
ON E.BusinessEntityID =
DH.BusinessEntityID
INNER JOIN
HumanResources.Department D
ON D.DepartmentID =
DH.DepartmentID
WHERE DH.EndDate IS NULL
AND D.DepartmentID IN (12,14)
GROUP BY ROLLUP(D.Name,
E.JobTitle);

pág. 36
Definición

Devuelve el valor máximo de la expresión.

Sintaxis Ejemplo
Ejemplo sencillo.
Max()
-- Aggregation Function Syntax.-- El siguiente ejemplo devuelve la tasa
MAX( [ ALL | DISTINCT ] expression impositiva más alta (máxima) en la
) base de datos AdventureWorks2012.

SELECT MAX(TaxRate)
FROM Sales.SalesTaxRate;
GO

Definición

Devuelve el valor mínimo de la expresión. Puede ir seguido de


la cláusula OVER .

Min() Sintaxis Ejemplo


Ejemplo sencillo.

-- Aggregation Function Syntax.-- El siguiente ejemplo devuelve la tasa


MIN ( [ ALL | DISTINCT ] expression impositiva más baja (mínima). El
) ejemplo utiliza la base de datos
AdventureWorks2012.
SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO

Definición

Devuelve la desviación estándar estadística de todos los valores de


la expresión especificada.

Stdev() Sintaxis Ejemplo


Usar STDEV
pág. 37
El siguiente ejemplo devuelve la
-- Aggregate Function Syntax.-- desviación estándar para todos los
STDEV ( [ ALL | DISTINCT ] valores de bonificación en
expression ) la SalesPerson tabla de la base de
datos AdventureWorks2012.

SELECT STDEV(Bonus)
FROM Sales.SalesPerson;
GO

Definición

Devuelve la desviación estándar estadística de la población para


todos los valores de la expresión especificada.

Sintaxis Ejemplo
Usando STDEVP.
Stdevp()
El siguiente ejemplo devuelve la
-- Aggregate Function Syntax.-- desviación estándar de la población
STDEVP ( [ ALL | DISTINCT ] para todos los valores de bonificación
expression ) en la SalesPerson tabla de la base de
datos AdventureWorks2012.

SELECT STDEVP(Bonus)
FROM Sales.SalesPerson;
GO

Definición

Devuelve la suma de todos los valores, o solo los valores DISTINCT,


en la expresión. SUM solo se puede usar con columnas
numéricas. Los valores nulos se ignoran.

Sintaxis Ejemplo

pág. 38
Uso de SUM para devolver datos de
resumen

Los siguientes ejemplos muestran el


uso de la función SUM para devolver
datos de resumen en la base de datos
-- Aggregate Function Syntax.-- AdventureWorks2012.
SUM ( [ ALL | DISTINCT ] expression
) SELECT Color, SUM(ListPrice),
SUM(StandardCost)
FROM Production.Product
Sum() WHERE Color IS NOT NULL
AND ListPrice != 0.00
AND Name LIKE 'Mountain%'
GROUP BY Color
ORDER BY Color;
GO

Definición

Devuelve la varianza estadística de todos los valores de la expresión


especificada. Puede ir seguido de la cláusula OVER .

Sintaxis Ejemplo
Usando VAR
Var()
El siguiente ejemplo devuelve la
-- Aggregate Function Syntax.-- varianza de todos los valores de
VAR ( [ ALL | DISTINCT ] expression bonificación en la SalesPerson tabla de
) la base de datos AdventureWorks2012.

SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO

pág. 39
Definición

Devuelve la varianza estadística de la población para todos los


valores de la expresión especificada.

Sintaxis Ejemplo
Uso de VARP
Varp()
-- Aggregate Function Syntax.-- El siguiente ejemplo devuelve la
VARP ( [ ALL | DISTINCT ] varianza de la población para todos los
expression ) valores de bonificación en
la SalesPerson tabla de la base de
datos AdventureWorks2012.

SELECT VARP(Bonus)
FROM Sales.SalesPerson;
GO

Configuration Functions

Estas funciones escalares devuelven información sobre las opciones de configuración actuales.

Todas las funciones de configuración operan de forma no determinista. En otras palabras, estas funciones no
siempre devuelven los mismos resultados cada vez que se las llama, incluso con el mismo conjunto de valores de
entrada.

pág. 40
Definición

Para una solicitud que ingresa al servidor, esta función devuelve


información sobre las propiedades de conexión de la conexión única
que admite esa solicitud.

Sintaxis Ejemplo
ConnectionProperty() Los valores devueltos coinciden con las
opciones que se muestran para las
columnas correspondientes en la vista
CONNECTIONPROPERTY ( property ) de administración
dinámica sys.dm_exec_connections.
Por ejemplo:

SELECT
ConnectionProperty('net_transport')
AS 'Net transport',
ConnectionProperty('protocol_type')
AS 'Protocol type';

Definición

Esta función devuelve el valor actual de SET DATEFIRST para una


sesión específica.
@@Datefirst
Sintaxis Ejemplo
Este ejemplo establece el primer día de
la semana en 5(viernes) y supone que
el día actual, Today, cae en
sábado. La SELECT declaración
@@DATEFIRST devuelve el DATEFIRST valor y el
número del día actual de la semana.

SET DATEFIRST 5;
SELECT @@DATEFIRST AS 'First Day'
,DATEPART(dw, SYSDATETIME()) AS
'Today';

Definición
pág. 41
@@Dbts Esta función devuelve el valor del tipo de datos de marca de tiempo
actual para la base de datos actual. La base de datos actual tendrá
un valor de marca de tiempo único garantizado.

pág. 42
Sintaxis Ejemplo

pág. 43
Este ejemplo devuelve la marca de
tiempo actual de la base de datos
AdventureWorks2012.
@@DBTS
USE AdventureWorks2012;
GO
SELECT @@DBTS;

pág. 44
Definición

Devuelve el identificador de idioma local (ID) del idioma que se está


utilizando actualmente.

@@Langid Sintaxis Ejemplo


El siguiente ejemplo establece el idioma
de la sesión actual en Italian, y luego
se usa @@LANGID para devolver el ID
@@LANGID de italiano.

SET LANGUAGE 'Italian'


SELECT @@LANGID AS 'Language ID'

Definición

Devuelve el nombre del idioma que se está utilizando actualmente.

@@Language Sintaxis Ejemplo


El siguiente ejemplo devuelve el idioma
@@LANGUAGE de la sesión actual.

SELECT @@LANGUAGE AS 'Language


Name';

Definición

Devuelve la configuración de tiempo de espera de bloqueo actual en


milisegundos para la sesión actual.

Sintaxis Ejemplo

pág. 45
Este ejemplo muestra el conjunto de
@@LOCK_TIMEOUT resultados cuando no se establece un
valor LOCK_TIMEOUT.

SELECT @@LOCK_TIMEOUT AS [Lock


@@Lock_Timeout Timeout];
GO

pág. 46
Definición

El número máximo de conexiones de usuario simultáneas


permitidas en una instancia de SQL Server. El número devuelto no
es necesariamente el número configurado actualmente.

Sintaxis Ejemplo
@@Max_Connections El siguiente ejemplo muestra la
devolución del número máximo de
conexiones de usuario en una
instancia de SQL Server. El ejemplo
@@MAX_CONNECTIONS asume que SQL Server no se ha
reconfigurado para menos conexiones
de usuario.

SELECT @@MAX_CONNECTIONS AS 'Max


Connections';

Definición
@@Max_Precision
Devuelve el nivel de precisión utilizado por los tipos de
datos numéricos y decimales tal como se establece actualmente en
el servidor.

Sintaxis Ejemplo
SELECT @@MAX_PRECISION AS 'Max
@@MAX_PRECISION Precision'

Definición

Devuelve el nivel de anidamiento de la ejecución del procedimiento


almacenado actual (inicialmente 0) en el servidor local.

Sintaxis Ejemplo

pág. 47
Usar @@NESTLEVEL en un
procedimiento

El siguiente ejemplo crea dos


procedimientos: uno que llama al otro y
otro que muestra la @@NESTLEVEL
configuración de cada uno.

USE AdventureWorks2012;
@@NESTLEVEL GO
IF OBJECT_ID (N'usp_OuterProc',
N'P')IS NOT NULL
DROP PROCEDURE usp_OuterProc;
GO
IF OBJECT_ID (N'usp_InnerProc',
N'P')IS NOT NULL
DROP PROCEDURE usp_InnerProc;
@@Nestlevel GO
CREATE PROCEDURE usp_InnerProc AS
SELECT @@NESTLEVEL AS 'Inner
Level';
GO
CREATE PROCEDURE usp_OuterProc AS
SELECT @@NESTLEVEL AS 'Outer
Level';
EXEC usp_InnerProc;
GO
EXECUTE usp_OuterProc;
GO

pág. 48
Definición
@@Options
Devuelve información sobre las opciones SET actuales.
Sintaxis Ejemplo
Demostración de cómo los cambios
afectan el comportamiento.

El siguiente ejemplo demuestra la


diferencia en el comportamiento de
@@OPTIONS concatenación con dos configuraciones
diferentes de la
opción CONCAT_NULL_YIELDS_NULL .

SELECT @@OPTIONS AS
OriginalOptionsValue;
SET CONCAT_NULL_YIELDS_NULL OFF;
SELECT 'abc' + NULL AS
ResultWhen_OFF, @@OPTIONS AS
OptionsValueWhen_OFF;

SET CONCAT_NULL_YIELDS_NULL ON;


SELECT 'abc' + NULL AS
ResultWhen_ON, @@OPTIONS AS
OptionsValueWhen_ON;

Definición

Devuelve el nombre del servidor de base de datos de SQL Server


remoto tal como aparece en el registro de inicio de sesión.
@@Remserver
Sintaxis Ejemplo
El siguiente ejemplo crea el
procedimiento usp_CheckServer que
devuelve el nombre del servidor remoto.
@@REMSERVER
CREATE PROCEDURE usp_CheckServer
AS
SELECT @@REMSERVER;

pág. 49
Definición

Devuelve el nombre del servidor local que ejecuta SQL Server.

@@Servername Sintaxis Ejemplo


El siguiente ejemplo muestra el uso
de @@SERVERNAME.
@@SERVERNAME
SELECT @@SERVERNAME AS 'Server
Name'

Definición

Devuelve el nombre de la clave de registro con la que se ejecuta SQL


Server. @@SERVICENAME devuelve 'MSSQLSERVER' si la instancia
@@Servicename actual es la instancia predeterminada; esta función devuelve el
nombre de la instancia si la instancia actual es una instancia con
nombre.

Sintaxis Ejemplo
El siguiente ejemplo muestra el uso
de @@SERVICENAME.
@@SERVICENAME
SELECT @@SERVICENAME AS 'Service
Name';

Definición
@@Spid
Devuelve el ID de sesión del proceso de usuario actual.

Sintaxis Ejemplo

pág. 50
Este ejemplo devuelve el ID de sesión,
el nombre de inicio de sesión y el
nombre de usuario para el proceso de
@@SPID usuario actual.

SELECT @@SPID AS 'ID', SYSTEM_USER


AS 'Login Name', USER AS 'User
Name';

pág. 51
Definición

Devuelve el valor actual de la opción TEXTSIZE .

Sintaxis Ejemplo
El siguiente ejemplo utiliza SELECT
para mostrar el @@TEXTSIZE valor
antes y después de que se cambie con
@@Textsize la SET``TEXTSIZE declaración.

-- Set the TEXTSIZE option to the


@@TEXTSIZE default size of 4096 bytes.--
SET TEXTSIZE 0
SELECT @@TEXTSIZE AS 'Text Size'
SET TEXTSIZE 2048
SELECT @@TEXTSIZE AS 'Text Size'

Definición

Devuelve información del sistema y de compilación para la


instalación actual de SQL Server.
@@Version
Sintaxis Ejemplo
Devolver la versión actual de SQL
Server.

@@VERSION El siguiente ejemplo muestra la


devolución de la información de la
versión para la instalación actual.

SELECT @@VERSION AS 'SQL Server


Version';

Cursor Functions

Estas funciones escalares devuelven información sobre los cursores.

pág. 52
Todas las funciones del cursor son no deterministas. En otras palabras, estas funciones no siempre devuelven
los mismos resultados cada vez que se ejecutan, incluso con el mismo conjunto de valores de entrada.

pág. 53
Definición

Esto devuelve el número de filas calificadas actualmente en el


último cursor abierto en la conexión. Para mejorar el rendimiento,
SQL Server puede llenar conjuntos de claves grandes y cursores
estáticos de forma asincrónica. @@CURSOR_ROWS se puede llamar
para determinar que el número de filas que califican para un cursor
se recuperan en el momento de la llamada @@CURSOR_ROWS.

Sintaxis Ejemplo
Este ejemplo primero declara un cursor
y luego se usa SELECT para mostrar el
valor de @@CURSOR_ROWS. La
configuración tiene un valor de 0antes
@@Cursor_Rows de que se abra el cursor y luego tiene
un valor de -1, para indicar que el
conjunto de claves del cursor se llena
de forma asíncrona.
@@CURSOR_ROWS
USE AdventureWorks2012;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM
Person.Person;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO

Definición

Para un parámetro determinado, CURSOR_STATUS muestra si una


declaración de cursor ha devuelto o no un cursor y un conjunto de
resultados.

Sintaxis Ejemplo
pág. 54
CURSOR_STATUS Este ejemplo usa la CURSOR_STATUS
( función para mostrar el estado de un
{ 'local' , 'cursor_name' cursor, después de su declaración,
} después de que se abre y después de
| { 'global' , que se cierra.
'cursor_name' }
| { 'variable' , CREATE TABLE #TMP
'cursor_variable' } (
) ii INT
)
GO

INSERT INTO #TMP(ii) VALUES(1)


INSERT INTO #TMP(ii) VALUES(2)
INSERT INTO #TMP(ii) VALUES(3)

Cursor_Status() GO

--Create a cursor.
DECLARE cur CURSOR
FOR SELECT * FROM #TMP

--Display the status of the cursor


before and after opening
--closing the cursor.

SELECT
CURSOR_STATUS('global','cur') AS
'After declare'
OPEN cur
SELECT
CURSOR_STATUS('global','cur') AS
'After Open'
CLOSE cur
SELECT
CURSOR_STATUS('global','cur') AS
'After Close'

--Remove the cursor.


DEALLOCATE cur

--Drop the table.


DROP TABLE #TMP
pág. 55
Definición

Esta función devuelve el estado de la última instrucción FETCH de


cursor emitida contra cualquier cursor actualmente abierto por la
conexión.

Sintaxis Ejemplo
Este ejemplo se
utiliza @@FETCH_STATUS para
@@Fetch_Status controlar las actividades del cursor en
un WHILE bucle.

DECLARE Employee_Cursor CURSOR FOR


@@FETCH_STATUS SELECT BusinessEntityID, JobTitle
FROM
AdventureWorks2012.HumanResources.E
mployee;
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM
Employee_Cursor;
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
GO

Date and Time Functions

Estas funciones lo ayudan a crear cálculos basados en fechas y horas. Muchas de las funciones de DAX son
similares a las funciones de fecha y hora de Excel. Sin embargo, las funciones DAX usan un tipo de datos
de fecha y hora y pueden tomar valores de una columna como argumento.

pág. 56
Definición
Current_Timestamp
Esta función devuelve la marca de tiempo del sistema de la base de
datos actual como un valor de fecha y hora, sin el desplazamiento
de la zona horaria de la base de datos. CURRENT_TIMESTAMP
deriva este valor del sistema operativo de la computadora en la que
se ejecuta la instancia de SQL Server.

Sintaxis Ejemplo
CURRENT_TIMESTAMP Obtener la fecha y hora del sistema
actual

SELECT SYSDATETIME()
,SYSDATETIMEOFFSET()
,SYSUTCDATETIME()
,CURRENT_TIMESTAMP
,GETDATE()
,GETUTCDATE();
/* Returned:
SYSDATETIME() 2007-04-30
13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30
13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30
20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30
13:10:02.047
GETDATE() 2007-04-30
13:10:02.047
GETUTCDATE() 2007-04-30
20:10:02.047
*/

Definición

pág. 57
Esta función agrega un número (un entero con signo) a una parte
de fecha de una fecha de entrada y devuelve un valor de fecha/hora
Dateadd() modificada.

Por ejemplo, puede usar esta función para encontrar la fecha que es
7000 minutos a partir de hoy: número = 7000, parte de fecha =
minuto, fecha = hoy.

pág. 58
Sintaxis Ejemplo

pág. 59
Estas instrucciones agregan una parte
de fecha de milisegundo, microsegundo
o nanosegundo.

DECLARE @datetime2 datetime2 =


'2007-01-01 13:10:10.1111111';
DATEADD (datepart , number , SELECT '1 millisecond',
date ) DATEADD(millisecond,1,@datetime2)
UNION ALL
SELECT '2 milliseconds',
DATEADD(millisecond,2,@datetime2)
UNION ALL
SELECT '1 microsecond',
DATEADD(microsecond,1,@datetime2)
UNION ALL
SELECT '2 microseconds',
DATEADD(microsecond,2,@datetime2)
UNION ALL
SELECT '49 nanoseconds',
DATEADD(nanosecond,49,@datetime2)
UNION ALL
SELECT '50 nanoseconds',
DATEADD(nanosecond,50,@datetime2)
UNION ALL
SELECT '150 nanoseconds',
DATEADD(nanosecond,150,@datetime2);
/*
1 millisecond 2007-01-01
13:10:10.1121111
2 milliseconds 2007-01-01
13:10:10.1131111
1 microsecond 2007-01-01
13:10:10.1111121
2 microseconds 2007-01-01
13:10:10.1111131
49 nanoseconds 2007-01-01
13:10:10.1111111
50 nanoseconds 2007-01-01
13:10:10.1111112
150 nanoseconds 2007-01-01
13:10:10.1111113
*/
pág. 60
Definición

Esta función devuelve el recuento (como un valor entero con signo)


de los límites de parte de fecha especificados cruzados entre
la fecha de inicio y la fecha de finalización especificadas.

Sintaxis Ejemplo
Especificación de columnas para
fecha de inicio y fecha de
finalización.

Este ejemplo calcula el número de


Datediff() DATEDIFF ( datepart , startdate límites de días cruzados entre fechas
, enddate ) en dos columnas de una tabla.

CREATE TABLE dbo.Duration


(startDate datetime2, endDate
datetime2);

INSERT INTO dbo.Duration(startDate,


endDate)
VALUES ('2007-05-06 12:10:09',
'2007-05-07 12:10:09');

SELECT DATEDIFF(day, startDate,


endDate) AS 'Duration'
FROM dbo.Duration;
-- Returns: 1

Definición

Esta función devuelve una cadena de caracteres que representa


Datename() la parte de fecha especificada de la fecha especificada.

Sintaxis Ejemplo

pág. 61
DATENAME ( datepart , date ) Este ejemplo devuelve las partes de la
fecha para la fecha
especificada. Sustituya un valor de
parte de fecha de la tabla por
el datepart argumento en la instrucción
SELECT:

SELECT DATENAME(datepart,'2007-10-
30 12:15:32.1234567 +05:10');

pág. 62
Definición

Esta función devuelve un número entero que representa la parte de


la fecha especificada de la fecha especificada.

Sintaxis Ejemplo
Este ejemplo devuelve el año base. El
Datepart() año base ayuda con los cálculos de
fecha. En el ejemplo, un número
DATEPART ( datepart , date ) especifica la fecha. Observe que SQL
Server interpreta 0 como el 1 de enero
de 1900.

SELECT DATEPART(year, 0),


DATEPART(month, 0), DATEPART(day,
0);

-- Returns: 1900 1 1

Definición

Esta función devuelve un número entero que representa el día (día


del mes) de la fecha especificada.

Day() Sintaxis Ejemplo


DAY ( date ) Esta declaración devuelve 30: el
número del día en sí.

SELECT DAY('2015-04-30
01:01:01.1234567');

Definición

Devuelve la marca de tiempo del sistema de la base de datos actual


Getdate() como un valor de fecha y hora sin el desplazamiento de la zona
horaria de la base de datos. Este valor se deriva del sistema
operativo del equipo en el que se ejecuta la instancia de SQL Server.

pág. 63
Sintaxis Ejemplo

pág. 64
GETDATE() Obtener la fecha y hora actual del
sistema.

SELECT SYSDATETIME()
,SYSDATETIMEOFFSET()
,SYSUTCDATETIME()
,CURRENT_TIMESTAMP
,GETDATE()
,GETUTCDATE();
/*
SYSDATETIME() 2007-04-30
13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30
13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30
20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30
13:10:02.047
GETDATE() 2007-04-30
13:10:02.047
GETUTCDATE() 2007-04-30
20:10:02.047
*/

pág. 65
Definición

Devuelve la marca de tiempo del sistema de base de datos actual


como un valor de fecha y hora. El desplazamiento de la zona horaria
de la base de datos no está incluido. Este valor representa la hora
UTC actual (Tiempo Universal Coordinado). Este valor se deriva del
sistema operativo del equipo en el que se ejecuta la instancia de
SQL Server.

Sintaxis Ejemplo

pág. 66
GETUTCDATE() Obtener la fecha y hora actual del
sistema

SELECT 'SYSDATETIME() ',


SYSDATETIME();
SELECT 'SYSDATETIMEOFFSET()',
SYSDATETIMEOFFSET();
SELECT 'SYSUTCDATETIME() ',
SYSUTCDATETIME();
SELECT 'CURRENT_TIMESTAMP ',
CURRENT_TIMESTAMP;
SELECT 'GETDATE() ',
GETDATE();
SELECT 'GETUTCDATE() ',
GETUTCDATE();
/* Returned:
Getutcdate() SYSDATETIME()
2007-05-03 18:34:11.9351421
SYSDATETIMEOFFSET()
2007-05-03 18:34:11.9351421
-07:00
SYSUTCDATETIME()
2007-05-04 01:34:11.9351421
CURRENT_TIMESTAMP
2007-05-03 18:34:11.933
GETDATE()
2007-05-03 18:34:11.933
GETUTCDATE()
2007-05-04 01:34:11.933
*/

pág. 67
Definición

Devuelve 1 si la expresión es un valor de fecha y hora válido; de lo


contrario, 0.
ISDATE devuelve 0 si la expresión es un valor datetime2.

Sintaxis Ejemplo
Isdate() ISDATE ( expression ) Uso de ISDATE para probar una
expresión de fecha y hora válida

El siguiente ejemplo le muestra cómo


usar ISDATE para probar si una
cadena de caracteres es una fecha y
hora válida.

IF ISDATE('2009-05-12
10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID';

Definición

Devuelve un entero que representa el mes de la fecha especificada.

Sintaxis Ejemplo
Month() MONTH ( date ) La siguiente instrucción devuelve 4.
Este es el número del mes.

SELECT MONTH('2007-04-
30T01:01:01.1234567 -07:00');

Definición

Devuelve un valor datetime2(7) que contiene la fecha y la hora del


Sysdatetime() equipo en el que se ejecuta la instancia de SQL Server.

Sintaxis Ejemplo
pág. 68
SYSDATETIME ( ) Obtener la fecha y hora actual
del sistema

SELECT SYSDATETIME()
,SYSDATETIMEOFFSET()
,SYSUTCDATETIME()
,CURRENT_TIMESTAMP
,GETDATE()
,GETUTCDATE();
/* Returned:
SYSDATETIME() 2007-04-30
13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30
13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30
20:10:02.0474381
CURRENT_TIMESTAMP
2007-04-30 13:10:02.047
GETDATE()
2007-04-30 13:10:02.047
GETUTCDATE()
2007-04-30 20:10:02.047
*/

pág. 69
Definición

Devuelve un valor datetimeoffset(7) que contiene la fecha y la hora


del equipo en el que se ejecuta la instancia de SQL Server. Se
incluye el desplazamiento de la zona horaria.

Sintaxis Ejemplo
Sysdatetimeoffset() Mostrar los formatos que devuelven
las funciones de fecha y hora

El siguiente ejemplo muestra los


diferentes formatos que devuelven las
SYSDATETIMEOFFSET ( ) funciones de fecha y hora.

SELECT SYSDATETIME() AS
[SYSDATETIME()]
,SYSDATETIMEOFFSET() AS
[SYSDATETIMEOFFSET()]
,SYSUTCDATETIME() AS
[SYSUTCDATETIME()]
,CURRENT_TIMESTAMP AS
[CURRENT_TIMESTAMP]
,GETDATE() AS [GETDATE()]
,GETUTCDATE() AS
[GETUTCDATE()];

/*
SYSDATETIME() 2007-04-30
13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30
13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30
20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30
13:10:02.047
GETDATE() 2007-04-30
13:10:02.047
GETUTCDATE() 2007-04-30
20:10:02.047*/

Definición
pág. 70
Devuelve un valor datetime2 que contiene la fecha y la hora del
equipo en el que se ejecuta la instancia de SQL Server. La fecha y la
hora se devuelven como hora UTC (hora universal coordinada). La
especificación de precisión de fracciones de segundo tiene un rango
de 1 a 7 dígitos. La precisión predeterminada es de 7 dígitos.

pág. 71
Sintaxis Ejemplo

pág. 72
Mostrar los formatos que devuelven
las funciones de fecha y hora.

El siguiente ejemplo muestra los


diferentes formatos que devuelven las
funciones de fecha y hora.

SELECT SYSDATETIME() AS
[SYSDATETIME()]
,SYSDATETIMEOFFSET() AS
SYSUTCDATETIME ( ) [SYSDATETIMEOFFSET()]
,SYSUTCDATETIME() AS
[SYSUTCDATETIME()]
,CURRENT_TIMESTAMP AS
[CURRENT_TIMESTAMP]
,GETDATE() AS [GETDATE()]
Sysutcdatetime() ,GETUTCDATE() AS
[GETUTCDATE()];
/*
SYSDATETIME() 2007-04-30
13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30
13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30
20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30
13:10:02.047
GETDATE() 2007-04-30
13:10:02.047
GETUTCDATE() 2007-04-30
20:10:02.047
*/

pág. 73
Definición
Switchoffset()
Devuelve un valor datetimeoffset que se cambia del desplazamiento
de zona horaria almacenado a un nuevo desplazamiento de zona
horaria especificado.

Sintaxis Ejemplo
SWITCHOFFSET ( El siguiente ejemplo utiliza
datetimeoffset_expression, SWITCHOFFSETpara mostrar un
timezoneoffset_expression ) desplazamiento de zona horaria
diferente al valor almacenado en la
base de datos.

CREATE TABLE dbo.test


(
ColDatetimeoffset
datetimeoffset
);
GO
INSERT INTO dbo.test
VALUES ('1998-09-20 7:45:50.71345 -
5:00');
GO
SELECT SWITCHOFFSET
(ColDatetimeoffset, '-08:00')
FROM dbo.test;
GO

--Returns: 1998-09-20
04:45:50.7134500 -08:00
SELECT ColDatetimeoffset
FROM dbo.test;
--Returns: 1998-09-20
07:45:50.7134500 -05:00

Definición

Devuelve un valor de desplazamiento de fecha y hora que se traduce


de una expresión de fecha y hora2.

pág. 74
Sintaxis Ejemplo
Cambio de la compensación de la
zona horaria de la fecha y hora
actuales.

TODATETIMEOFFSET ( El siguiente ejemplo cambia el


datetime_expression , desplazamiento de zona de la fecha y
timezoneoffset_expression ) hora actual a la zona horaria -07:00.

DECLARE @todaysDateTime DATETIME2;


SET @todaysDateTime = GETDATE();
Todatetimeoffset() SELECT TODATETIMEOFFSET
(@todaysDateTime, '-07:00');
-- RETURNS 2019-04-22
16:23:51.7666667 -07:00

Definición

Devuelve un entero que representa el año de la fecha especificada.


Year()
Sintaxis Ejemplo
La siguiente instrucción
devuelve 2010. Este es el
YEAR ( date ) número del año.

SELECT YEAR('2010-04-
30T01:01:01.1234567-
07:00');

Mathematical Functions

Las siguientes funciones escalares realizan un cálculo, generalmente basado en valores de entrada que se
proporcionan como argumentos, y devuelven un valor numérico.

pág. 75
Todas las funciones matemáticas, excepto RAND, son funciones deterministas. Esto significa que devuelven los
mismos resultados cada vez que se les llama con un conjunto específico de valores de entrada. RAND es
determinista solo cuando se especifica un parámetro semilla.

pág. 76
Definición
Abs()
Una función matemática que devuelve el valor absoluto (positivo) de
la expresión numérica especificada. ( ABS cambia los valores
negativos a valores positivos. ABS No tiene efecto sobre los valores
cero o positivos).

Sintaxis Ejemplo
Este ejemplo muestra los resultados de
usar la ABS función en tres números
diferentes.

SELECT ABS(-1.0), ABS(0.0),


ABS(1.0);
ABS ( numeric_expression )
/*Aquí está el conjunto de
resultados.
---- ---- ----
1.0 .0 1.0 */

Definición

Una función que devuelve el ángulo, en radianes, cuyo coseno es la


Acos() expresión flotante especificada. Esto también se llama arcocoseno.

Sintaxis Ejemplo

pág. 77
Este ejemplo devuelve el ACOS valor
del número especificado.

ACOS ( float_expression ) SET NOCOUNT OFF;


DECLARE @cos FLOAT;
SET @cos = -1.0;
SELECT 'The ACOS of the number is:
' + CONVERT(VARCHAR, ACOS(@cos));

/*Aquí está el conjunto de


resultados.
--------------------------------
The ACOS of the number is:
3.14159 */

pág. 78
Definición

Una función que devuelve el ángulo, en radianes, cuyo seno es


Asin() la expresión flotante especificada. Esto también se llama arcoseno.

Sintaxis Ejemplo

pág. 79
Este ejemplo toma una expresión
flotante y devuelve el valor ASIN del
ángulo especificado.

/* The first value will be -1.01.


This fails because the value is
outside the range.*/
ASIN ( float_expression ) DECLARE @angle FLOAT
SET @angle = -1.01
SELECT 'The ASIN of the angle is: '
+ CONVERT(VARCHAR, ASIN(@angle))
GO

-- The next value is -1.00.


DECLARE @angle FLOAT
SET @angle = -1.00
SELECT 'The ASIN of the angle is: '
+ CONVERT(VARCHAR, ASIN(@angle))
GO

-- The next value is 0.1472738.


DECLARE @angle FLOAT
SET @angle = 0.1472738
SELECT 'The ASIN of the angle is: '
+ CONVERT(VARCHAR, ASIN(@angle))
GO

/*Aquí está el conjunto de


resultados.
-------------------------
.Net SqlClient Data Provider: Msg
3622, Level 16, State 1, Line 3
A domain error occurred.
--------------------------------
The ASIN of the angle is: -1.5708
(1 row(s) affected)
--------------------------------
The ASIN of the angle is: 0.147811
(1 row(s) affected) */

pág. 80
Definición

Una función que devuelve el ángulo, en radianes, cuya tangente es


Atan() una expresión flotante especificada. Esto también se llama
arcotangente.

Sintaxis Ejemplo

pág. 81
Este ejemplo toma una expresión
flotante y devuelve el ATAN del ángulo
especificado.

SELECT 'The ATAN of -45.01 is: ' +


CONVERT(varchar, ATAN(-45.01))
ATAN ( float_expression ) SELECT 'The ATAN of -181.01 is: ' +
CONVERT(varchar, ATAN(-181.01))
SELECT 'The ATAN of 0 is: ' +
CONVERT(varchar, ATAN(0))
SELECT 'The ATAN of 0.1472738 is: '
+ CONVERT(varchar, ATAN(0.1472738))
SELECT 'The ATAN of 197.1099392 is:
' + CONVERT(varchar,
ATAN(197.1099392))
GO

/*Aquí está el conjunto de


resultados.
-------------------------------
The ATAN of -45.01 is: -1.54858
(1 row(s) affected)
--------------------------------
The ATAN of -181.01 is: -1.56527
(1 row(s) affected)
--------------------------------
The ATAN of 0 is: 0
(1 row(s) affected)
--------------------------------
The ATAN of 0.1472738 is: 0.146223
(1 row(s) affected)
--------------------------------
The ATAN of 197.1099392 is: 1.56572
(1 row(s) affected)

pág. 82
Definición

Devuelve el ángulo, en radianes, entre el eje x positivo y el rayo


desde el origen hasta el punto (y, x), donde x e y son los valores de
las dos expresiones flotantes especificadas.

Sintaxis Ejemplo
Atn2() El siguiente ejemplo calcula el para los
componentes ATN2especificados xy .y

DECLARE @x FLOAT = 35.175643, @y


FLOAT = 129.44;
ATN2 ( float_expression , SELECT 'The ATN2 of the angle is: '
float_expression) + CONVERT(VARCHAR, ATN2(@y, @x));
GO

/*Aquí está el conjunto de


resultados.
The ATN2 of the angle is: 1.30545
(1 row(s) affected) */

Definición

Esta función devuelve el entero más pequeño mayor o igual que la


Ceiling() expresión numérica especificada.

Sintaxis Ejemplo

pág. 83
Este ejemplo muestra entradas
numéricas positivas, numéricas
negativas y de valor cero para la
función TECHO.
CEILING ( numeric_expression )
SELECT CEILING($123.45), CEILING($-
123.45), CEILING($0.0);
GO
/*Aquí está el conjunto de
resultados.
--------- --------- ---------------
----------
124.00 -123.00 0.00
(1 row(s) affected) */

pág. 84
Definición

Una función matemática que devuelve el coseno trigonométrico del


ángulo especificado, medido en radianes, en la expresión
especificada.

Sintaxis Ejemplo
Cos() Este ejemplo devuelve el COS valor del
ángulo especificado:

DECLARE @angle FLOAT;


COS ( float_expression ) SET @angle = 14.78;
SELECT 'The COS of the angle is: '
+ CONVERT(VARCHAR,COS(@angle));
GO

/*Aquí está el conjunto de


resultados.
The COS of the angle is: -0.599465
(1 row(s) affected) */

Definición

Una función matemática que devuelve la cotangente trigonométrica


Cot() del ángulo especificado, en radianes, en la expresión flotante
especificada.

Sintaxis Ejemplo

pág. 85
COT ( float_expression ) Este ejemplo devuelve el COTvalor para
el ángulo específico:

DECLARE @angle FLOAT;


SET @angle = 124.1332;
SELECT 'The COT of the angle is: '
+ CONVERT(VARCHAR, COT(@angle));
GO

/*Aquí está el conjunto de


resultados.
The COT of the angle is: -0.040312
(1 row(s) affected) */

pág. 86
Definición

Esta función devuelve el ángulo correspondiente, en grados, para


un ángulo especificado en radianes.

Sintaxis Ejemplo
Este ejemplo devuelve el número de
Degrees() DEGREES ( numeric_expression ) grados en un ángulo de PI/2 radianes.

SELECT 'The number of degrees in


PI/2 radians is: ' +
CONVERT(VARCHAR,
DEGREES((PI()/2)));
GO

/*Aquí está el conjunto de


resultados.
The number of degrees in PI/2
radians is 90
(1 row(s) affected) */

Definición

Devuelve el valor exponencial de la expresión flotante especificada.


Exp()
Sintaxis Ejemplo

pág. 87
Hallar el exponente de un número

El siguiente ejemplo declara una


variable y devuelve el valor exponencial
de la variable especificada ( 10) con
una descripción de texto.

EXP ( float_expression ) DECLARE @var FLOAT


SET @var = 10
SELECT 'The EXP of the variable is:
' + CONVERT(VARCHAR, EXP(@var))
GO

/*Aquí está el conjunto de


resultados.
-----------------------------------
-----------------------
The EXP of the variable is: 22026.5
(1 row(s) affected) */

pág. 88
Definición

Devuelve el entero más grande menor o igual que la expresión


numérica especificada.

Floor() Sintaxis Ejemplo


El siguiente ejemplo muestra valores
numéricos positivos, numéricos
negativos y de moneda con la FLOOR
función.

FLOOR ( numeric_expression ) SELECT FLOOR(123.45), FLOOR(-


123.45), FLOOR($123.45);

/*El resultado es la parte entera


del valor calculado en el mismo
tipo de datos que
numeric_expression .
--------- ---------
123 -124
123.0000 */

Definición

Devuelve el logaritmo natural de la expresión flotante especificada


Log() en SQL Server.

Sintaxis Ejemplo

pág. 89
-- Syntax for SQL Server, Azure SQL Calcular el logaritmo de un número.
Database
LOG ( float_expression [, base ] ) El siguiente ejemplo calcula para la
expresión flotante LOG especificada.
-- Syntax for Azure Synapse SQL
LOG ( float_expression ) DECLARE @var FLOAT = 10;
SELECT 'The LOG of the variable is:
' + CONVERT(VARCHAR, LOG(@var));
GO

/*Aquí está el conjunto de


resultados.
-----------------------------------
--
The LOG of the variable is: 2.30259
(1 row(s) affected) */

pág. 90
Definición

Devuelve el logaritmo en base 10 de la expresión flotante


Log100() especificada.

Sintaxis Ejemplo
Cálculo del logaritmo en base 10
para una variable.

El siguiente ejemplo calcula el


LOG10de la variable especificada.
LOG10 ( float_expression )
DECLARE @var FLOAT;
SET @var = 145.175643;
SELECT 'The LOG10 of the variable
is: ' +
CONVERT(VARCHAR,LOG10(@var));
GO

/*Aquí está el conjunto de


resultados.
The LOG10 of the variable is:
2.16189
(1 row(s) affected) */

Definición
Pi()
Devuelve el valor constante de PI.

Sintaxis Ejemplo

pág. 91
El siguiente ejemplo devuelve el valor
de PI.

SELECT PI();
PI ( ) GO

/*Aquí está el conjunto de


resultados.
------------------------
3.14159265358979
(1 row(s) affected) */

pág. 92
Definición

Devuelve el valor de la expresión especificada a la potencia


especificada.

Power() Sintaxis Ejemplo


Usar POTENCIA para devolver el
cubo de un número.

El siguiente ejemplo demuestra elevar


un número a la potencia de 3 (el cubo
del número).
POWER ( float_expression , y )
DECLARE @input1 FLOAT;
DECLARE @input2 FLOAT;
SET @input1= 2;
SET @input2 = 2.5;
SELECT POWER(@input1, 3) AS
Result1, POWER(@input2, 3) AS
Result2;

/*Aquí está el conjunto de


resultados.
Result1 Result2
---------------------- ------------
---
8 15.625
(1 row(s) affected) */

Definición

Devuelve radianes cuando se ingresa una expresión numérica, en


Radians() grados.

Sintaxis Ejemplo
Usando RADIANES para mostrar 0.0

RADIANS ( numeric_expression ) El siguiente ejemplo devuelve un


resultado 0.0porque la expresión
numérica para convertir a radianes es
pág. 93
demasiado pequeña para la RADIANS
función.

SELECT RADIANS(1e-307)
GO

/*Aquí está el conjunto de


resultados.
-------------------
0.0
(1 row(s) affected)*/

pág. 94
Definición

Devuelve un valor flotante pseudoaleatorio de 0 a 1, exclusivo.

Sintaxis Ejemplo
El siguiente ejemplo produce cuatro
números aleatorios diferentes que son
Rand() generados por la función ALEATORIO.

DECLARE @counter SMALLINT;


SET @counter = 1;
RAND ( [ seed ] ) WHILE @counter < 5
BEGIN
SELECT RAND() Random_Number
SET @counter = @counter + 1
END;
GO

Definición

Devuelve un valor numérico, redondeado a la longitud o precisión


Round() especificada.

Sintaxis Ejemplo
Uso de ROUND y estimaciones

El siguiente ejemplo muestra dos


expresiones que demuestran que usar
ROUND el último dígito siempre es una
ROUND ( numeric_expression , estimación.
length [ ,function ] )
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO

/*Aquí está el conjunto de


resultados.
----------- -----------
123.9990 124.0000 */

pág. 95
Definición

Devuelve el signo positivo (+1), cero (0) o negativo (-1) de la


Sign() expresión especificada.

Sintaxis Ejemplo
El siguiente ejemplo devuelve los
valores SIGN de números de -1 a 1.

DECLARE @value REAL


SET @value = -1
SIGN ( numeric_expression ) WHILE @value < 2
BEGIN
SELECT SIGN(@value)
SET NOCOUNT ON
SELECT @value = @value + 1
SET NOCOUNT OFF
END
SET NOCOUNT OFF
GO

/*Aquí está el conjunto de


resultados.
(1 row(s) affected)
------------------------
-1.0
(1 row(s) affected)
------------------------
0.0
(1 row(s) affected)
------------------------
1.0
(1 row(s) affected) */

Definición
Sin()
Devuelve el seno trigonométrico del ángulo especificado, en
radianes, y en una expresión numérica aproximada, float.

Sintaxis Ejemplo
pág. 96
SIN ( float_expression ) El siguiente ejemplo calcula el SIN para
un ángulo específico.

DECLARE @angle FLOAT;


SET @angle = 45.175643;
SELECT 'The SIN of the angle is: '
+ CONVERT(VARCHAR, SIN(@angle));
GO

/*Aquí está el conjunto de


resultados.
The SIN of the angle is: 0.929607
(1 row(s) affected)*/

pág. 97
Definición
Sqrt()
Devuelve la raíz cuadrada del valor flotante especificado.

Sintaxis Ejemplo
El siguiente ejemplo devuelve la raíz
cuadrada de los números entre 1.00y
10.00.

DECLARE @myvalue FLOAT;


SET @myvalue = 1.00;
WHILE @myvalue < 10.00
BEGIN
SQRT ( float_expression ) SELECT SQRT(@myvalue);
SET @myvalue = @myvalue + 1
END;
GO

/*Aquí está el conjunto de


resultados.
------------------------
1.0
------------------------
1.4142135623731
------------------------
1.73205080756888
------------------------
2.0
------------------------
2.23606797749979
------------------------
2.44948974278318
------------------------
2.64575131106459
------------------------
2.82842712474619
------------------------
3.0 */

Definición

pág. 98
Devuelve el cuadrado del valor flotante especificado.

pág. 99
Sintaxis Ejemplo
El siguiente ejemplo devuelve el
volumen de un cilindro que tiene un
radio de 1pulgada y una altura de
5pulgadas.

Square() DECLARE @h FLOAT, @r FLOAT;


SQUARE ( float_expression ) SET @h = 5;
SET @r = 1;
SELECT PI()* SQUARE(@r)* @h AS 'Cyl
Vol';

/*Aquí está el conjunto de


resultados.
Cyl Vol
--------------------------
15.707963267948966 */

Definición
Tan()
Devuelve la tangente de la expresión de entrada.

Sintaxis Ejemplo
El siguiente ejemplo devuelve la
tangente de PI()/2.

TAN ( float_expression ) SELECT TAN(PI()/2);

/*Aquí está el conjunto de


resultados.
----------------------
1.6331778728383844E+16 */

Metadata Functions

pág. 100
Las siguientes funciones escalares devuelven información sobre la base de datos y los objetos de la base de datos.

Todas las funciones de metadatos son no deterministas. Esto significa que estas funciones no siempre devuelven
los mismos resultados cada vez que se las llama, incluso con el mismo conjunto de valores de entrada.

pág. 101
Definición

Esta función devuelve la longitud definida de una columna, en


bytes.

Sintaxis Ejemplo
Este ejemplo muestra los valores
devueltos para una columna de tipo
varchar(40) y una columna de tipo
Col_Length() nvarchar(40):

USE AdventureWorks2012;
GO
CREATE TABLE t1(c1 VARCHAR(40), c2
COL_LENGTH ( 'table' , 'column' ) NVARCHAR(40) );
GO
SELECT COL_LENGTH('t1','c1')AS
'VarChar',
COL_LENGTH('t1','c2')AS
'NVarChar';
GO
DROP TABLE t1;

/*Aquí está el conjunto de


resultados.
--------
VarChar NVarChar
40 80 */

Definición
Col_Name()
Esta función devuelve el nombre de una columna de la tabla, en
función del número de identificación de la tabla y los valores del
número de identificación de la columna de esa columna de la tabla.

Sintaxis Ejemplo

pág. 102
Este ejemplo devuelve el nombre de la
primera columna en una
Employeetabla de muestra.

-- Uses AdventureWorks
SELECT
COL_NAME(OBJECT_ID('dbo.FactReselle
COL_NAME ( table_id , column_id ) rSales'), 1) AS FirstColumnName,
COL_NAME(OBJECT_ID('dbo.FactReselle
rSales'), 2) AS SecondColumnName;
/*Aquí está el conjunto de
resultados.
ColumnName
------------
BusinessEntityID */

pág. 103
Definición
Columnproperty()
Esta función devuelve información de columna o parámetro.

Sintaxis Ejemplo
Este ejemplo devuelve la longitud de la
LastNamecolumna.

USE AdventureWorks2012;
GO
SELECT COLUMNPROPERTY(
COLUMNPROPERTY ( id , column , OBJECT_ID('Person.Person'),'LastNam
property ) e','PRECISION')AS 'Column Length';
GO

/*Aquí está el conjunto de


resultados.
Column Length
---------
50 */

Definición
DatabaseProperty()
Sintaxis Ejemplo
Usar DATABASEPROPERTYEX para
comprobar la conexión a la réplica
DATABASEPROPERTY ( database ,
property ) SELECT
DATABASEPROPERTY(DB_NAME(),
'Updateability');

Definición

Para una base de datos especificada en SQL Server, esta función


DatabasePropertyex() devuelve la configuración actual de la opción o propiedad de la base
de datos especificada.

Sintaxis Ejemplo
pág. 104
Recuperación del estado de la opción
de base de datos AUTO_SHRINK.

Este ejemplo devuelve el estado de la


opción de base de datos AUTO_SHRINK
DATABASEPROPERTYEX ( database , para la base de AdventureWorksdatos.
property )
SELECT
DATABASEPROPERTYEX('AdventureWo
rks2014', 'IsAutoShrink');

pág. 105
Definición

Esta función devuelve el número de identificación de base de datos


de una base de datos especificada.

Db_Id() Sintaxis Ejemplo


Devolver el Id. de base de datos de la
base de datos actual
DB_ID ( [ 'database_name' ] ) En este ejemplo se devuelve el
identificador de base de datos de la
base de datos actual.

SELECT DB_ID() AS [Database ID];


GO

Definición

Esta función devuelve el nombre de una base de datos especificada.

Sintaxis Ejemplo
Devolver el nombre de la base de
Db_Name() datos actual.

En este ejemplo se devuelve el nombre


DB_NAME ( [ database_id ] ) de la base de datos actual.

SELECT DB_NAME() AS [Current


Database];
GO

Definición
File_Id()
Para el nombre lógico dado de un archivo de componente de la base
de datos actual, esta función devuelve el número de identificación
(id.) del archivo.

Sintaxis Ejemplo
pág. 106
En este ejemplo se devuelve el valor de
identificador de archivo del archivo
AdventureWorks_Data, un archivo de
componente de la base de datos
ADVENTUREWORKS2012.

FILE_ID ( file_name ) USE AdventureWorks2012;


GO
SELECT
FILE_ID('AdventureWorks2012_Data')A
S 'File ID';
GO

pág. 107
Definición
File_Name()
Esta función devuelve el nombre de archivo lógico correspondiente a
un número de identificación (id.) de archivo dado.

Sintaxis Ejemplo
FILE_NAME ( file_id ) En este ejemplo se devuelven los
nombres de archivo de file_ID 1 y
file_ID de la base de datos
AdventureWorks2012.

SELECT FILE_NAME(1) AS 'File Name


1', FILE_NAME(2) AS 'File Name 2';
GO

Definición
Filegroup_Id()
Esta función devuelve el número de identificación (id.) del grupo de
archivos correspondiente al nombre del grupo de archivos
especificado.

Sintaxis Ejemplo
En este ejemplo se devuelve el
identificador del grupo de archivos
denominado PRIMARY de la base de
FILEGROUP_ID ( 'filegroup_name' ) datos AdventureWorks2012.

SELECT FILEGROUP_ID('PRIMARY') AS
[Filegroup ID];
GO

Definición
Filegroup_Name()
Esta función devuelve el nombre del grupo de archivos
correspondiente al número de identificación (id.) del grupo de
archivos especificado.

pág. 108
Sintaxis Ejemplo

pág. 109
En este ejemplo se devuelve el nombre
del grupo de archivos del identificador
de grupo de archivos 1 en la base de
FILEGROUP_NAME ( filegroup_id ) datos AdventureWorks2012.

SELECT FILEGROUP_NAME(1) AS
[Filegroup Name];
GO

pág. 110
Definición

Esta función devuelve el valor de propiedad de grupo de archivos de


Filegroupproperty() un valor de grupo de archivos y un nombre especificado.

Sintaxis Ejemplo
En este ejemplo se devuelve el valor de
la propiedad IsDefault del grupo de
FILEGROUPPROPERTY ( filegroup_name, archivos principal de la base de datos
property ) AdventureWorks2012.

SELECT FILEGROUPPROPERTY('PRIMARY',
'IsDefault') AS 'Default
Filegroup';
GO

Definición

Devuelve el valor de una propiedad de nombre de archivo


Fileproperty() especificada al especificar un nombre de archivo en la base de datos
actual y un nombre de propiedad. Devuelve NULL para los archivos
que no estén en la base de datos actual.

Sintaxis Ejemplo
En el siguiente ejemplo se devuelve el
valor de la propiedad IsPrimaryFile del
nombre de archivo
AdventureWorks_Data de la base de
FILEPROPERTY ( file_name , property datos AdventureWorks2012.
)
SELECT
FILEPROPERTY('AdventureWorks2012_Da
ta', 'IsPrimaryFile')AS [Primary
File];
GO

Definición

pág. 111
Devuelve valores de propiedad extendidos de los objetos de la base
de datos.

pág. 112
Sintaxis Ejemplo

pág. 113
fn_listextendedproperty ( Mostrar propiedades extendidas en
{ default | 'property_name' | una base de datos
NULL }
, { default | El siguiente ejemplo muestra todas las
'level0_object_type' | NULL } propiedades extendidas establecidas en
, { default | el propio objeto de la base de datos.
::fn_Listextendedproperty() 'level0_object_name' | NULL }
, { default | USE AdventureWorks2012;
'level1_object_type' | NULL } GO
, { default | SELECT objtype, objname, name,
'level1_object_name' | NULL } value
, { default | FROM
'level2_object_type' | NULL } fn_listextendedproperty(default,
, { default | default, default, default, default,
'level2_object_name' | NULL } default, default);
) GO

pág. 114
Definición

Devuelve información sobre las propiedades del catálogo de texto


Fulltextcatalogproperty() completo en SQL Server.

Sintaxis Ejemplo
El siguiente ejemplo devuelve el
número de elementos indexados de
texto completo en un catálogo de texto
completo llamado Cat_Desc.
FULLTEXTCATALOGPROPERTY
('catalog_name' ,'property') USE AdventureWorks2012;
GO
SELECT
fulltextcatalogproperty('Cat_Desc',
'ItemCount');
GO

Definición

Devuelve información relacionada con las propiedades del motor de


texto completo. Estas propiedades se pueden establecer y recuperar
mediante sp_fulltext_service.
Fulltextserviceproperty()
Sintaxis Ejemplo
El siguiente ejemplo comprueba si solo
se cargan los archivos binarios
firmados y el valor devuelto indica que
FULLTEXTSERVICEPROPERTY esta verificación no se está realizando.
('property')
SELECT
fulltextserviceproperty('Verify
Signature');

Definición

pág. 115
Index_Col() Devuelve el nombre de la columna indexada. Devuelve NULL para
índices XML.

pág. 116
Sintaxis Ejemplo

pág. 117
INDEX_COL ( '[ database_name . [ Uso de INDEX_COL para devolver un
schema_name ] .| schema_name ] nombre de columna de índice
table_or_view_name', index_id ,
key_id ) El siguiente ejemplo devuelve los
nombres de columna de las dos
columnas clave en el índice
PK_SalesOrderDetail_SalesOrderID_Lin
eNumber.

USE AdventureWorks2012;
GO
SELECT
INDEX_COL
(N'AdventureWorks2012.Sales.SalesOr
derDetail', 1,1) AS
[Index Column 1],
INDEX_COL
(N'AdventureWorks2012.Sales.SalesOr
derDetail', 1,2) AS
[Index Column 2]
;
GO

pág. 118
Definición

Devuelve información sobre la clave de índice. Devuelve NULL para


índices XML.
Indexkey_Property() Sintaxis Ejemplo
En el siguiente ejemplo, se devuelven
ambas propiedades para el ID de índice
1, columna clave 1de la
Production.Locationtabla.

USE AdventureWorks2012;
GO
SELECT
INDEXKEY_PROPERTY ( object_ID
,index_ID ,key_ID ,property ) INDEXKEY_PROPERTY(OBJECT_ID('Produc
tion.Location', 'U'),
1,1,'ColumnId') AS [Column
ID],

INDEXKEY_PROPERTY(OBJECT_ID('Produc
tion.Location', 'U'),
1,1,'IsDescending') AS [Asc
or Desc order];

/*Aquí está el conjunto de


resultados:
Column ID Asc or Desc order
----------- -----------------
1 0
(1 row(s) affected) */

Definición
Indexproperty()
Devuelve el índice con nombre o el valor de la propiedad de
estadísticas de un número de identificación de tabla especificado, el
nombre del índice o de las estadísticas y el nombre de la
propiedad. Devuelve NULL para índices XML.

pág. 119
Sintaxis Ejemplo

pág. 120
El siguiente ejemplo devuelve los
valores de las propiedades IsClustered ,
IndexDepth e IndexFillFactor para el
PK_Employee_BusinessEntityIDíndice
de la Employeetabla en la base de datos
AdventureWorks2012.

INDEXPROPERTY ( object_ID , SELECT INDEXPROPERTY


index_or_statistics_name , property (OBJECT_ID('HumanResources.Employee
) '),

'PK_Employee_BusinessEntityID','IsC
lustered')AS [Is Clustered],

INDEXPROPERTY(OBJECT_ID('HumanResou
rces.Employee'),

'PK_Employee_BusinessEntityID','Ind
exDepth') AS [Index Depth],

INDEXPROPERTY(OBJECT_ID('HumanResou
rces.Employee'),

'PK_Employee_BusinessEntityID','Ind
exFillFactor') AS [Fill Factor];

/*Aquí está el conjunto de


resultados:

Is Clustered Index Depth Fill


Factor
------------ ----------- ----------
-
1 2 0
(1 row(s) affected) */

pág. 121
Definición

Devuelve el número de identificación del objeto de la base de datos


de un objeto del ámbito del esquema.

Sintaxis Ejemplo
Devolver el ID de objeto para un
objeto especificado

Object_Id() El siguiente ejemplo devuelve el ID de


objeto de la Production.WorkOrdertabla
OBJECT_ID ( '[ database_name . [ en la base de datos
schema_name ] . | schema_name . ] AdventureWorks2012.
object_name' [ ,'object_type' ] )
USE master;
GO
SELECT
OBJECT_ID(N'AdventureWorks2012.Prod
uction.WorkOrder') AS 'Object ID';
GO

Definición

Devuelve el nombre del objeto de la base de datos para los objetos


Object_Name() del ámbito del esquema.

Sintaxis Ejemplo

pág. 122
Uso de OBJECT_NAME en una
cláusula WHERE

El siguiente ejemplo devuelve columnas


de la sys.objectsvista de catálogo para
el objeto especificado OBJECT_NAMEen
OBJECT_NAME ( object_id [, la WHEREcláusula de la
database_id ] ) SELECTinstrucción.

USE AdventureWorks2012;
GO
DECLARE @MyID INT;
SET @MyID = (SELECT
OBJECT_ID('AdventureWorks2012.Produ
ction.Product',
'U'));
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@MyID);
GO

pág. 123
Definición

Devuelve información sobre los objetos del ámbito del esquema en


la base de datos actual.

Sintaxis Ejemplo
Verificar que un objeto es una tabla

El siguiente ejemplo prueba si


Objectproperty() UnitMeasurees una tabla en la base de
datos AdventureWorks2012.

USE AdventureWorks2012;
GO
OBJECTPROPERTY ( id , property ) IF OBJECTPROPERTY
(OBJECT_ID(N'Production.UnitMeasure
'),'ISTABLE') = 1
PRINT 'UnitMeasure is a table.'
ELSE IF OBJECTPROPERTY
(OBJECT_ID(N'Production.UnitMeasure
'),'ISTABLE') = 0
PRINT 'UnitMeasure is not a
table.'
ELSE IF OBJECTPROPERTY
(OBJECT_ID(N'Production.UnitMeasure
'),'ISTABLE') IS NULL
PRINT 'ERROR: UnitMeasure is not
a valid object.';
GO

Definición
Objectpropertyex()
Devuelve información sobre los objetos del ámbito del esquema en
la base de datos actual.

Sintaxis Ejemplo

pág. 124
Encontrar el tipo base de un objeto

El siguiente ejemplo crea un SYNONYM


MyEmployeeTablepara la
Employeetabla en la base de datos
AdventureWorks2012 y luego devuelve
OBJECTPROPERTYEX ( id , property ) el tipo base del SYNONYM.

USE AdventureWorks2012;
GO
CREATE SYNONYM MyEmployeeTable FOR
HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX (
object_id(N'MyEmployeeTable'),
N'BaseType')AS [Base Type];
GO

pág. 125
Definición

Devuelve el identificador de objeto (ID) del módulo Transact-SQL


@@Procid() actual.

Un módulo Transact-SQL puede ser un procedimiento almacenado,


una función definida por el usuario o un activador. @@PROCID no
se puede especificar en los módulos CLR o en el proveedor de acceso
a datos en proceso.

Sintaxis Ejemplo

pág. 126
El siguiente ejemplo utiliza
@@PROCIDcomo parámetro de entrada
en la OBJECT_NAMEfunción para
devolver el nombre del procedimiento
almacenado en el RAISERRORmensaje.

USE AdventureWorks2012;
GO
@@PROCID IF OBJECT_ID ( 'usp_FindName', 'P'
) IS NOT NULL
DROP PROCEDURE usp_FindName;
GO
CREATE PROCEDURE usp_FindName
@lastname VARCHAR(40) = '%',
@firstname VARCHAR(20) = '%'
AS
DECLARE @Count INT;
DECLARE @ProcName NVARCHAR(128);
SELECT LastName, FirstName
FROM Person.Person
WHERE FirstName LIKE @firstname AND
LastName LIKE @lastname;
SET @Count = @@ROWCOUNT;
SET @ProcName =
OBJECT_NAME(@@PROCID);
RAISERROR ('Stored procedure %s
returned %d rows.', 16,10,
@ProcName, @Count);
GO
EXECUTE dbo.usp_FindName 'P%',
'A%';

pág. 127
Definición
Sql_Variant_Property()
Devuelve el tipo de datos base y otra información sobre un valor
de sql_variant.

Sintaxis Ejemplo
Usando un sql_variant en una tabla
El siguiente ejemplo recupera
SQL_VARIANT_PROPERTYinformación
sobre el colAvalor 46279.1donde colB=
1689, dado que tableAtiene colAque es
de tipo sql_varianty colB.

CREATE TABLE tableA(colA


SQL_VARIANT_PROPERTY ( expression , sql_variant, colB int)
property ) INSERT INTO tableA values ( cast
(46279.1 as decimal(8,2)), 1689)
SELECT
SQL_VARIANT_PROPERTY(colA,'BaseType
') AS 'Base Type',

SQL_VARIANT_PROPERTY(colA,'Precisio
n') AS 'Precision',

SQL_VARIANT_PROPERTY(colA,'Scale')
AS 'Scale'
FROM tableA
WHERE colB = 1689

/*Aquí está el conjunto de


resultados. Tenga en cuenta que
cada uno de estos tres valores es
un sql_variant .

Base Type Precision Scale


--------- --------- -----
decimal 8 2

(1 row(s) affected) */

Definición
pág. 128
Devuelve información sobre un tipo de datos.

pág. 129
Sintaxis Ejemplo

pág. 130
Identificación del propietario de un
tipo de datos

El siguiente ejemplo devuelve el


Typeproperty() propietario de un tipo de datos.
TYPEPROPERTY (type , property)
SELECT
TYPEPROPERTY(SCHEMA_NAME(schema_id)
+ '.' + name, 'OwnerId') AS
owner_id, name, system_type_id,
user_type_id, schema_id
FROM sys.types;

pág. 131
Definición

Devuelve una versión que está asociada con la última transacción


Change_tracking_current_version() confirmada. Esta versión se puede usar cuando enumera cambios
mediante CHANGETABLE.

Sintaxis Ejemplo
El siguiente ejemplo declara la variable
local @next_baselinepara almacenar la
versión actual de los cambios
CHANGE_TRACKING_CURRENT_VERSION ( ) registrados y luego usa la
CHANGE_TRACKING_CURRENT_VERSI
ON() función para obtener el valor de la
variable.

DECLARE @next_baseline bigint;


SET @next_baseline =
CHANGE_TRACKING_CURRENT_VERSION
();

Definición

Interpreta el valor SYS_CHANGE_COLUMNS que devuelve la


función CHANGETABLE(CHANGES...). Esto permite que una
aplicación determine si la columna especificada está incluida en los
Change_Tracking_Is_Column_In_Mask() valores que se devuelven para SYS_CHANGE_COLUMNS.

Sintaxis Ejemplo

pág. 132
El siguiente ejemplo determina si la
Salarycolumna de la Employeestabla se
actualizó. La COLUMNPROPERTY
función devuelve el ID de columna de la
Salarycolumna. La
CHANGE_TRACKING_IS_COLUMN_IN_MASK ( @change_columnsvariable local debe
column_id , change_columns ) establecerse en los resultados de una
consulta utilizando CHANGETABLE
como fuente de datos.

SET @SalaryChanged =
CHANGE_TRACKING_IS_COLUMN_IN_MASK

(COLUMNPROPERTY(OBJECT_ID('Employee
s'), 'Salary', 'ColumnId')
,@change_columns);

Other Functions

Estas funciones realizan acciones únicas que no pueden ser definidas por ninguna de las categorías.

pág. 133
Definición

Esta función devuelve el nombre de la aplicación para la sesión


App_Name() actual, si la aplicación establece ese valor de nombre.

Sintaxis Ejemplo
Este ejemplo comprueba si la
aplicación cliente que inició este
proceso es una SQL Server
Management Studiosesión. A
continuación, proporciona un valor de
fecha en formato EE. UU. o ANSI.

USE AdventureWorks2012;
APP_NAME ( ) GO
IF APP_NAME() = 'Microsoft SQL
Server Management Studio - Query'
PRINT 'This process was started by
' + APP_NAME() + '. The date is ' +
CONVERT ( VARCHAR(100) , GETDATE(),
101) + '.';
ELSE
PRINT 'This process was started by
' + APP_NAME() + '. The date is ' +
CONVERT ( VARCHAR(100) , GETDATE(),
102) + '.';
GO

Definición
Cast()
Una función que convierte una expresión dada en un tipo de datos
especificado.

Sintaxis Ejemplo

pág. 134
Convierta un valor a un tipo de datos
varchar:

CAST(expression AS SELECT CAST(25.65 AS varchar);


datatype(length))

Convierta un valor a un tipo de datos


de fecha y hora:

SELECT CAST('2017-08-25' AS
datetime);

pág. 135
Definición
Coalesce()
Evalúa los argumentos en orden y devuelve el valor actual de la
primera expresión que inicialmente no se evalúa como NULL. Por
ejemplo, SELECT COALESCE (NULL, NULL, 'third_value',
'fourth_value'); devuelve el tercer valor porque el tercer valor es el
primer valor que no es nulo.

Sintaxis Ejemplo
Ejecutando un ejemplo simple

El siguiente ejemplo muestra cómo


COALESCEselecciona los datos de la
primera columna que tiene un valor no
COALESCE ( expression [ ,...n ] ) nulo. Este ejemplo usa la base de datos
AdventureWorks2012.

SELECT Name, Class, Color,


ProductNumber,
COALESCE(Class, Color,
ProductNumber) AS FirstNotNull
FROM Production.Product;

Definición
Esta función devuelve la propiedad solicitada de una colación
especificada.
Collationproperty() Sintaxis Ejemplo
COLLATIONPROPERTY( collation_name , SELECT
property ) COLLATIONPROPERTY('Traditional_
Spanish_CS_AS_KS_WS',
'CodePage');

Definición

pág. 136
Columns_Update() Esta función devuelve un patrón de bits varbinary que indica las
columnas insertadas o actualizadas de una tabla o
vista. Úselo COLUMNS_UPDATEDen cualquier lugar dentro del
cuerpo de un disparador INSERT o UPDATE de Transact-SQL para
probar si el disparador debe ejecutar ciertas acciones.

pág. 137
Sintaxis Ejemplo

pág. 138
COLUMNS_UPDATED ( ) Usar COLUMNS_UPDATED para
probar más de ocho columnas

Para probar las actualizaciones que


afectan a las columnas que no sean las
primeras ocho columnas de la tabla,
use la SUBSTRINGfunción para probar
el bit correcto devuelto por
COLUMNS_UPDATED. Este ejemplo
prueba las actualizaciones que afectan
a las columnas 3, 5y 9en la
AdventureWorks2012.Person.Persontab
la.

USE AdventureWorks2012;
GO
IF OBJECT_ID (N'Person.uContact2',
N'TR') IS NOT NULL
DROP TRIGGER Person.uContact2;
GO
CREATE TRIGGER Person.uContact2 ON
Person.Person
AFTER UPDATE AS
IF (
(SUBSTRING(COLUMNS_UPDATED(), 1, 1)
& 20 = 20)
AND
(SUBSTRING(COLUMNS_UPDATED(), 2, 1)
& 1 = 1) )
PRINT 'Columns 3, 5 and 9
updated';
GO

UPDATE Person.Person
SET NameStyle = NameStyle,
FirstName=FirstName,

EmailPromotion=EmailPromotion;
GO

pág. 139
Definición

Esta función convierte una expresión de un tipo de datos a otro.

Sintaxis Ejemplo
Usar CONVERT con XML escrito
Estos ejemplos muestran el uso de
Convert() CONVERT para convertir datos a XML
-- CONVERT Syntax: con tipo, mediante el uso de columnas
CONVERT ( data_type [ ( length ) ] y tipos de datos XML (SQL Server) .
, expression [ , style ] )
Este ejemplo convierte una cadena con
espacios en blanco, texto y marcado en
XML escrito y elimina todos los
espacios en blanco insignificantes
(espacio en blanco límite entre nodos):

SELECT CONVERT(XML,
'<root><child/></root>');

Definición

Esta función devuelve el nombre del usuario actual. Esta función es


equivalente a USER_NAME().

Current_User() Sintaxis Ejemplo


Usar CURRENT_USER para devolver
el nombre de usuario actual
CURRENT_USER Este ejemplo devuelve el nombre del
usuario actual.

SELECT CURRENT_USER;
GO
Definición

Esta función devuelve el número de bytes utilizados para


representar cualquier expresión.

pág. 140
Sintaxis Ejemplo

pág. 141
Este ejemplo encuentra la longitud de
la Name columna en la Producttabla:

USE AdventureWorks2016
Datalength() GO
DATALENGTH ( expression ) SELECT length =
DATALENGTH(EnglishProductName),
EnglishProductName
FROM dbo.DimProduct
ORDER BY EnglishProductName;
GO

pág. 142
Definición
@@Error
Devuelve el número de error de la última instrucción Transact-SQL
ejecutada.

Sintaxis Ejemplo
Usar @@ERROR para detectar un
error específico

El siguiente ejemplo se usa


@@ERRORpara verificar una violación
de restricción de verificación (error
#547) en una UPDATEdeclaración.
@@ERROR
USE AdventureWorks2012;
GO
UPDATE
HumanResources.EmployeePayHistory
SET PayFrequency = 4
WHERE BusinessEntityID = 1;
IF @@ERROR = 547
BEGIN
PRINT N'A check constraint
violation occurred.';
END
GO

Definición

Devuelve una lista de todas las intercalaciones admitidas.


fn_Helpcollations()
Sintaxis Ejemplo

pág. 143
El siguiente ejemplo devuelve todos los
nombres de intercalación que
comienzan con la letra L y que son
intercalaciones de clasificación binaria.
fn_helpcollations ()
SELECT Name, Description FROM
fn_helpcollations()
WHERE Name like 'L%' AND
Description LIKE '% binary
sort';

pág. 144
Definición

Devuelve los nombres de las unidades compartidas utilizadas por el


::fn_Servershareddrives() servidor en clúster.

Sintaxis Ejemplo
El siguiente ejemplo se utiliza
fn_servershareddrives para consultar
fn_servershareddrives() en una instancia de servidor en clúster:

SELECT * FROM
fn_servershareddrives();

Definición
::fn_Virtualservernodes()
Devuelve una lista de nodos de instancias en clúster de
conmutación por error en los que se puede ejecutar una instancia
de SQL Server.

Sintaxis Ejemplo
El siguiente ejemplo se utiliza
fn_virtualservernodespara consultar en
fn_virtualservernodes() una instancia de servidor en clúster:

SELECT * FROM
fn_virtualservernodes();

Definición
Formatmessage()
Construye un mensaje a partir de un mensaje existente en
sys.messages o de una cadena proporcionada. La funcionalidad de
FORMATMESSAGE se asemeja a la de la instrucción RAISERROR.

Sintaxis Ejemplo

pág. 145
FORMATMESSAGE ( { msg_number | ' Ejemplo con una cadena de mensaje
msg_string ' | @msg_variable} , [ Se aplica a: SQL Server (SQL Server
param_value [ ,...n ] ] ) 2016 (13.x) hasta la versión actual).

El siguiente ejemplo toma una cadena


como entrada.

SELECT FORMATMESSAGE('This is
the %s and this is the %s.',
'first variable', 'second
variable') AS Result;

pág. 146
Definción

Devuelve la nulabilidad predeterminada para la base de datos para


esta sesión.

Getansinull() Sintaxis Ejemplo


El siguiente ejemplo devuelve la
nulabilidad predeterminada para la
base de AdventureWorks2012datos.
GETANSINULL ( [ 'database' ] )
USE AdventureWorks2012;
GO
SELECT
GETANSINULL('AdventureWorks2012')
GO

Definición

Devuelve el número de identificación de la estación de trabajo. El


Host_Id() número de identificación de la estación de trabajo es el ID de
proceso (PID) de la aplicación en la computadora cliente que se
conecta a SQL Server.

Sintaxis Ejemplo

pág. 147
El siguiente ejemplo crea una tabla que
se usa HOST_ID() en una DEFAULT
definición para registrar el ID de
terminal de las computadoras que
insertan filas en una tabla que registra
HOST_ID () pedidos.

CREATE TABLE Orders


(OrderID INT PRIMARY
KEY,
CustomerID NCHAR(5)
REFERENCES Customers(CustomerID),
TerminalID CHAR(8) NOT NULL
DEFAULT HOST_ID(),
OrderDate DATETIME NOT NULL,
ShipDate DATETIME NULL,
ShipperID INT NULL
REFERENCES Shippers(ShipperID));
GO

pág. 148
Definición

Devuelve el nombre de la estación de trabajo.

Sintaxis Ejemplo
El siguiente ejemplo crea una tabla que
se usa HOST_NAME()en una
Host_Name() DEFAULTdefinición para registrar el
nombre de la estación de trabajo de las
computadoras que insertan filas en una
HOST_NAME () tabla que registra órdenes.

CREATE TABLE Orders


(OrderID INT PRIMARY
KEY,
CustomerID NCHAR(5)
REFERENCES Customers(CustomerID),
Workstation NCHAR(30) NOT NULL
DEFAULT HOST_NAME(),
OrderDate DATETIME NOT
NULL,
ShipDate DATETIME NULL,
ShipperID INT NULL
REFERENCES Shippers(ShipperID));
GO

Definición
Ident_Current()
Devuelve el último valor de identidad generado para una tabla o
vista especificada. El último valor de identidad generado puede ser
para cualquier sesión y cualquier ámbito.

Sintaxis Ejemplo

pág. 149
IDENT_CURRENT( 'table_or_view' ) Devolver el último valor de identidad
generado para una tabla específica

El siguiente ejemplo devuelve el último


valor de identidad generado para la
Person.Addresstabla en la base de
AdventureWorks2012datos.

USE AdventureWorks2012;
GO
SELECT IDENT_CURRENT
('Person.Address') AS
Current_Identity;
GO

pág. 150
Definición
Ident_Incr()
Devuelve el valor de incremento especificado al crear una columna
de identidad de tabla o vista.

Sintaxis Ejemplo
IDENT_INCR ( 'table_or_view' ) Devolver el valor de incremento para
una tabla específica
El siguiente ejemplo devuelve el valor
de incremento para la
Person.Addresstabla en la base de
datos AdventureWorks2012.

USE AdventureWorks2012;
GO
SELECT IDENT_INCR('Person.Address')
AS Identity_Increment;
GO

Definición

Devuelve el valor semilla original especificado al crear una columna


de identidad en una tabla o vista. Cambiar el valor actual de una
columna de identidad mediante DBCC CHECKIDENT no cambia el
valor devuelto por esta función.

Ident_Seed() Sintaxis Ejemplo


IDENT_SEED ( 'table_or_view' ) Devolver el valor inicial de una tabla
específica

El siguiente ejemplo devuelve el valor


inicial de la Person.Addresstabla en la
base de datos AdventureWorks2012.

USE AdventureWorks2012;
GO
SELECT IDENT_SEED('Person.Address')
AS Identity_Seed;
GO
pág. 151
Definición
@@Identity
Es una función del sistema que devuelve el último valor de
identidad insertado.

Sintaxis Ejemplo
@@IDENTITY El siguiente ejemplo inserta una fila en
una tabla con una columna de
identidad ( LocationID) y utiliza
@@IDENTITYpara mostrar el valor de
identidad utilizado en la nueva fila.

USE AdventureWorks2012;
GO
--Display the value of LocationID
in the last row in the table.
SELECT MAX(LocationID) FROM
Production.Location;
GO
INSERT INTO Production.Location
(Name, CostRate, Availability,
ModifiedDate)
VALUES ('Damaged Goods', 5, 2.5,
GETDATE());
GO
SELECT @@IDENTITY AS 'Identity';
GO
--Display the value of LocationID
of the newly inserted row.
SELECT MAX(LocationID) FROM
Production.Location;
GO

Definición
Isnull()
Reemplaza NULL con el valor de reemplazo especificado.

Sintaxis Ejemplo

pág. 152
Uso de ISNULL con AVG
ISNULL ( check_expression , El siguiente ejemplo encuentra el
replacement_value ) promedio del peso de todos los
productos. Sustituye el valor 50de
todas las entradas NULL en la
Weightcolumna de la Producttabla.

USE AdventureWorks2012;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO

pág. 153
Definición
Isnumeric()
Determina si una expresión es un tipo numérico válido.

Sintaxis Ejemplo
ISNUMERIC ( expression ) El siguiente ejemplo utiliza
ISNUMERICpara devolver todos los
códigos postales que no son valores
numéricos.

USE AdventureWorks2012;
GO
SELECT City, PostalCode
FROM Person.Address
WHERE ISNUMERIC(PostalCode) <> 1;
GO

Definición
Newid()
Crea un valor único de tipo uniqueidentifier.

Sintaxis Ejemplo
Usando la función NEWID con una
NEWID ( ) variable

El siguiente ejemplo utiliza NEWID()para


asignar un valor a una variable declarada
como el tipo de datos de identificador
único. El valor de la variable de tipo de
datos del identificador único se imprime
antes de probar el valor.

-- Creating a local variable with


DECLARE/SET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT 'Value of @myid is: '+
CONVERT(varchar(255), @myid)

pág. 154
Definición

Devuelve un valor nulo si las dos expresiones especificadas son


Nullif() iguales.

Por ejemplo, SELECT NULLIF(4,4) AS Same, NULLIF(5,7) AS


Different; devuelve NULL para la primera columna (4 y 4) porque los
dos valores de entrada son iguales.

La segunda columna devuelve el primer valor (5) porque los dos


valores de entrada son diferentes.

Sintaxis Ejemplo

pág. 155
NULLIF ( expression , expression ) Devolución de importes de presupuesto
que no contienen datos
El siguiente ejemplo crea una
budgetstabla, carga datos y utiliza
NULLIFpara devolver un valor nulo si
current_yeares nulo o contiene los
mismos datos que previous_year.

CREATE TABLE budgets (


dept TINYINT,
current_year DECIMAL(10,2),
previous_year DECIMAL(10,2)
);

INSERT INTO budgets VALUES(1,


100000, 150000);
INSERT INTO budgets VALUES(2, NULL,
300000);
INSERT INTO budgets VALUES(3, 0,
100000);
INSERT INTO budgets VALUES(4, NULL,
150000);
INSERT INTO budgets VALUES(5,
300000, 300000);

SELECT dept, NULLIF(current_year,


previous_year) AS LastBudget
FROM budgets;

/*Aquí está el conjunto de


resultados.

dept LastBudget
---- -----------
1 100000.00
2 null
3 0.00
4 null
5 null */

pág. 156
Definición

Devuelve la parte especificada de un nombre de objeto. Las partes


de un objeto que se pueden recuperar son el nombre del objeto, el
nombre del esquema, el nombre de la base de datos y el nombre del
servidor.

Parsename() Sintaxis Ejemplo


PARSENAME ('object_name' , El siguiente ejemplo se usa
object_piece ) PARSENAME para devolver información
sobre la Persontabla en la base de
AdventureWorks2012datos.

-- Uses AdventureWorks
SELECT
PARSENAME('AdventureWorksPDW2012.db
o.DimCustomer', 1) AS 'Object
Name';
SELECT
PARSENAME('AdventureWorksPDW2012.db
o.DimCustomer', 2) AS 'Schema
Name';
SELECT
PARSENAME('AdventureWorksPDW2012.db
o.DimCustomer', 3) AS 'Database
Name';
SELECT
PARSENAME('AdventureWorksPDW2012.db
o.DimCustomer', 4) AS 'Server
Name';
GO

Definición
Permissions()
Devuelve un valor que contiene un mapa de bits que indica los
permisos de declaración, objeto o columna del usuario actual.

Sintaxis Ejemplo

pág. 157
PERMISSIONS ( [ objectid [ , Uso de la función PERMISOS con
'column' ] ] ) permisos de declaración

El siguiente ejemplo determina si el


usuario actual puede ejecutar la
CREATE TABLEdeclaración.

IF PERMISSIONS()&2=2
CREATE TABLE test_table (col1
INT)
ELSE
PRINT 'ERROR: The current
user cannot create a table.';

pág. 158
Definición

Devuelve el número de filas afectadas por la última sentencia. Si el


número de filas es superior a 2 000 millones,
utilice ROWCOUNT_BIG .

Sintaxis Ejemplo
@@Rowcount El siguiente ejemplo ejecuta una
@@ROWCOUNT UPDATE declaración y se usa
@@ROWCOUNT para detectar si se
cambió alguna fila.

USE AdventureWorks2012;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were
updated';
GO

Definición

Devuelve el número de filas afectadas por la última instrucción


Rowcount_Big() ejecutada.

Sintaxis Ejemplo
ROWCOUNT_BIG ( ) SELECT ROWCOUNT_BIG ( ) ;

Definición
Scope_Identity()
Devuelve el último valor de identidad insertado en una columna de
identidad en el mismo ámbito.

Sintaxis Ejemplo

pág. 159
SCOPE_IDENTITY() Uso de @@IDENTITY y
SCOPE_IDENTITY() con replicación
Los siguientes ejemplos muestran cómo
usar @@IDENTITYy
SCOPE_IDENTITY()para inserciones en
una base de datos que se publica para
la replicación de mezcla. Ambas tablas
de los ejemplos están en la base de
datos de muestra
AdventureWorks2012Person.ContactTy
pe : no está publicada y
Sales.Customerestá publicada. La
replicación de mezcla agrega
activadores a las tablas que se
publican. Por lo tanto,
@@IDENTITYpuede devolver el valor de
la inserción en una tabla del sistema de
replicación en lugar de la inserción en
una tabla de usuario.

La Person.ContactTypetabla tiene un
valor de identidad máximo de 20. Si
inserta una fila en la tabla
@@IDENTITYy
SCOPE_IDENTITY()devuelve el mismo
valor.

USE AdventureWorks2012;
GO
INSERT INTO Person.ContactType
([Name]) VALUES ('Assistant to the
Manager');
GO
SELECT SCOPE_IDENTITY() AS
[SCOPE_IDENTITY];
GO
SELECT @@IDENTITY AS [@@IDENTITY];
GO

pág. 160
Definición

Devuelve información de propiedad sobre la instancia del servidor.


Severproperty()
Sintaxis Ejemplo
SERVERPROPERTY ( 'propertyname' ) El siguiente ejemplo usa la
SERVERPROPERTYfunción en una
SELECTdeclaración para devolver
información sobre la instancia actual
de SQL Server.

SELECT
SERVERPROPERTY('MachineName') AS
ComputerName,
SERVERPROPERTY('ServerName') AS
InstanceName,
SERVERPROPERTY('Edition') AS
Edition,
SERVERPROPERTY('ProductVersion')
AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS
ProductLevel;
GO

Definición
Sessionproperty()
Devuelve la configuración de opciones SET de una sesión.

Sintaxis Ejemplo
SESSIONPROPERTY (option)

El siguiente ejemplo devuelve la


configuración de la
CONCAT_NULL_YIELDS_NULLopción.

SELECT SESSIONPROPERTY
('CONCAT_NULL_YIELDS_NULL');

pág. 161
Definición

SESSION_USER devuelve el nombre de usuario del contexto actual


Session_User() en la base de datos actual.

Sintaxis Ejemplo
SESSION_USER Usar SESSION_USER para devolver el
nombre de usuario de la sesión
actual

El siguiente ejemplo declara una


variable como nchar, asigna el valor
actual de SESSION_USERa esa variable
y luego imprime la variable con una
descripción de texto.

DECLARE @session_usr NCHAR(30);


SET @session_usr = SESSION_USER;
SELECT 'This session''s current
user is: '+ @session_usr;
GO

Definición
Stats_Date()
Devuelve la fecha de la actualización más reciente de las
estadísticas de una tabla o vista indexada.

Sintaxis Ejemplo

pág. 162
STATS_DATE ( object_id , stats_id ) Devolver las fechas de las
estadísticas más recientes de una
tabla

El siguiente ejemplo devuelve la fecha


de la actualización más reciente para
cada objeto de estadísticas en la
Person.Addresstabla.

USE AdventureWorks2012;
GO
SELECT name AS stats_name,
STATS_DATE(object_id, stats_id)
AS statistics_update_date
FROM sys.stats
WHERE object_id =
OBJECT_ID('Person.Address');
GO

pág. 163
Definición
System_User()
Permite insertar en una tabla un valor proporcionado por el sistema
para el inicio de sesión actual cuando no se especifica ningún valor
predeterminado.

Sintaxis Ejemplo
SYSTEM_USER Usar SYSTEM_USER para devolver el
nombre de usuario actual del sistema

El siguiente ejemplo devuelve el valor


actual de SYSTEM_USER.

SELECT SYSTEM_USER;

Definición
@@Trancount
Devuelve el número de instrucciones BEGIN TRANSACTION que se
han producido en la conexión actual.

Sintaxis Ejemplo

pág. 164
@@TRANCOUNT Mostrar los efectos de las sentencias
BEGIN y COMMIT

El siguiente ejemplo muestra el efecto


que tienen las declaraciones anidadas
BEGINy en la
variable.COMMIT@@TRANCOUNT

PRINT @@TRANCOUNT
-- The BEGIN TRAN statement will
increment the
-- transaction count by 1.
BEGIN TRAN
PRINT @@TRANCOUNT
BEGIN TRAN
PRINT @@TRANCOUNT
-- The COMMIT statement will
decrement the transaction count by
1.
COMMIT
PRINT @@TRANCOUNT
COMMIT
PRINT @@TRANCOUNT
--Results
--0
--1
--2
--1
--0

pág. 165
Definición
Update()
Devuelve un valor booleano que indica si se intentó utilizar INSERT
o UPDATE en una columna especificada de una tabla o vista.

UPDATE() se usa en cualquier lugar del cuerpo de un


desencadenador INSERT o UPDATE de Transact-SQL para probar si
el desencadenador debe ejecutar ciertas acciones.

Sintaxis Ejemplo
UPDATE ( column ) En el ejemplo siguiente se crea un
desencadenador que imprime un
mensaje para el cliente si alguien
intenta actualizar las columnas
StateProvinceID o PostalCode de la
tabla Address.

USE AdventureWorks2012;
GO
IF EXISTS (SELECT name FROM
sys.objects
WHERE name = 'reminder' AND
type = 'TR')
DROP TRIGGER Person.reminder;
GO
CREATE TRIGGER reminder
ON Person.Address
AFTER UPDATE
AS
IF ( UPDATE (StateProvinceID) OR
UPDATE (PostalCode) )
BEGIN
RAISERROR (50009, 16, 10)
END;
GO
-- Test the trigger.
UPDATE Person.Address
SET PostalCode = 99999
WHERE PostalCode = '12345';
GO

pág. 166
Definición
User_Name()
Devuelve un nombre de usuario de la base de datos a partir de un
número de identificación especificado.

Sintaxis Ejemplo
USER_NAME ( [ id ] ) Usar NOMBRE_USUARIO

El siguiente ejemplo devuelve el nombre


de usuario para el ID de usuario 13.

SELECT USER_NAME(13);
GO

Hierarchy Id Functions

El tipo de datos de la jerarquía es un tipo de datos del sistema de longitud variable. Este tipo de datos permite
almacenar y consultar los datos jerárquicos fácilmente. Los datos jerárquicos son un conjunto de datos
relacionados entre sí por relaciones jerárquicas.

pág. 167
Definición

Devuelve la raíz del árbol de jerarquía. GetRoot() es un método


estático.

Sintaxis Ejemplo
Ejemplo de Transact-SQL.
GetRoot()
El siguiente ejemplo devuelve la raíz del
árbol de jerarquía:
hierarchyid::GetRoot ( )
SELECT OrgNode.ToString() AS
Text_OrgNode, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode =
hierarchyid::GetRoot()

Definición

Devuelve un nodo secundario del padre.


GetDescendant()
Sintaxis Ejemplo

pág. 168
Insertar una fila como el nodo menos
descendiente.

Se contrata un nuevo empleado, que


reporta a un empleado existente en el
nodo /3/1/. Ejecute el siguiente código
para insertar la nueva fila usando el
método GetDescendant sin argumentos
parent.GetDescendant ( child1 , para especificar el nodo de nuevas filas
child2 ) como /3/1/1/:

DECLARE @Manager hierarchyid;


SET @Manager = CAST('/3/1/' AS
hierarchyid);

INSERT HumanResources.EmployeeDemo
(OrgNode, LoginID, Title, HireDate)
VALUES
(@Manager.GetDescendant(NULL,
NULL),
'adventure-works\FirstNewEmployee',
'Application Intern', '3/11/07');

pág. 169
Definición

Devuelve verdadero si es un descendiente del padre.

Sintaxis Ejemplo
Usar IsDescendantOf en una cláusula
WHERE
El siguiente ejemplo devuelve un
gerente y los empleados que reportan al
gerente:
IsDescendantOf()
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM
child. IsDescendantOf ( parent HumanResources.EmployeeDemo
) WHERE LoginID = 'adventure-
works\dylan0'

SELECT * FROM
HumanResources.EmployeeDemo
WHERE
OrgNode.IsDescendantOf(@Manager
) = 1

Definición

Devuelve un entero que representa la profundidad del nodo este en


GetLevel() el árbol.

Sintaxis Ejemplo

pág. 170
Devolver el nivel de jerarquía como
una columna

El siguiente ejemplo devuelve una


representación de texto de la jerarquía
y luego el nivel de la jerarquía como la
node.GetLevel ( ) columna EmpLevel para todas las filas
de la tabla:

SELECT OrgNode.ToString() AS
Text_OrgNode,
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo;

pág. 171
Definición
GetAncestor()
Devuelve un id de jerarquía que representa el ancestro n de this.

Sintaxis Ejemplo
child.GetAncestor ( n ) Encontrar los nodos secundarios de
un padre

GetAncestor(1)devuelve los empleados


que tienen david0como ascendiente
inmediato (su padre). El siguiente
ejemplo utiliza GetAncestor(1).

DECLARE @CurrentEmployee
hierarchyid
SELECT @CurrentEmployee = OrgNode
FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-
works\david0'

SELECT OrgNode.ToString() AS
Text_OrgNode, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode.GetAncestor(1) =
@CurrentEmployee ;

Definición

Devuelve un nodo cuya ruta desde la raíz es la ruta a newRoot,


GetReparentedValue() seguida de la ruta desde oldRoot.

Sintaxis Ejemplo

pág. 172
Comparación de dos ubicaciones de
nodos

El siguiente ejemplo muestra el id de


jerarquía actual de un nodo. También
muestra cuál sería el ID de jerarquía
del nodo si mueve el nodo para que se
convierta en un descendiente del nodo
@NewParent . Utiliza el
node. GetReparentedValue ( ToString()método para mostrar las
oldRoot, newRoot ) relaciones jerárquicas.

DECLARE @SubjectEmployee
hierarchyid , @OldParent
hierarchyid, @NewParent hierarchyid
SELECT @SubjectEmployee = OrgNode
FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-
works\gail0' ;
SELECT @OldParent = OrgNode FROM
HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-
works\roberto0' ; -- who is /1/1/
SELECT @NewParent = OrgNode FROM
HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-
works\wanida0' ; -- who is /2/3/

SELECT OrgNode.ToString() AS
Current_OrgNode_AS_Text,
(@SubjectEmployee.
GetReparentedValue(@OldParent,
@NewParent) ).ToString() AS
Proposed_OrgNode_AS_Text,
OrgNode AS Current_OrgNode,
@SubjectEmployee.
GetReparentedValue(@OldParent,
@NewParent) AS Proposed_OrgNode,
*
FROM HumanResources.EmployeeDemo
WHERE OrgNode = @SubjectEmployee ;
GO

pág. 173
Definición

Devuelve una cadena con la representación lógica de este . ToString


ToString() se llama implícitamente cuando se produce una conversión de id
de jerarquía a un tipo de cadena. Actúa como lo opuesto a Parse
(motor de base de datos) .

Sintaxis Ejemplo
Ejemplo de Transact-SQL en una
tabla

El siguiente ejemplo devuelve tanto la


OrgNodecolumna como el tipo de datos
del ID de jerarquía y en el formato de
cadena más legible:
-- Transact-SQL syntax
node.ToString ( ) SELECT OrgNode,
-- This is functionally equivalent OrgNode.ToString() AS Node
to the following syntax FROM HumanResources.EmployeeDemo
-- which implicitly calls ORDER BY OrgNode ;
ToString(): GO
CAST(node AS nvarchar(4000)) /*Aquí está el conjunto de
GO resultados.

OrgNode Node
0x /
0x58 /1/
0x5AC0 /1/1/
0x5B40 /1/2/
0x5BC0 /1/3/
0x5C20 /1/4/
...*/

Rowset Functions

pág. 174
Un conjunto de filas es un conjunto de filas que contienen columnas de datos. Los conjuntos de filas son
objetos centrales que permiten que todos los proveedores de datos OLE DB expongan los datos del conjunto de
resultados en formato tabular.

pág. 175
Definición

Devuelve una tabla de cero, una o más filas para aquellas columnas
que contienen coincidencias precisas o aproximadas (menos
precisas) de palabras y frases individuales, la proximidad de
palabras dentro de una cierta distancia entre sí o coincidencias
ponderadas.
Containstable()
CONTAINSTABLE es útil para los mismos tipos de coincidencias que
el predicado CONTAINS y utiliza las mismas condiciones de
búsqueda que CONTAINS.

Sintaxis Ejemplo

pág. 176
CONTAINSTABLE Ejemplo sencillo
( table , { column_name | (
column_list ) | * } , ' El siguiente ejemplo crea y completa
<contains_search_condition> ' una tabla simple de dos columnas, que
[ , LANGUAGE language_term] enumera 3 condados y los colores de
[ , top_n_by_rank ] sus banderas. Luego crea y llena un
) catálogo de texto completo y un índice
en la tabla. Luego se demuestra la
<contains_search_condition> ::= sintaxis CONTAINSTABLE . Este
{ <simple_term> ejemplo demuestra cómo el valor de
| <prefix_term> clasificación aumenta cuando el valor
| <generation_term> de búsqueda se cumple varias veces.
| <generic_proximity_term> En la última consulta, Tanzania, que
| <custom_proximity_term> contiene tanto verde como negro, tiene
| <weighted_term> una clasificación más alta que Italia,
} que contiene solo uno de los colores
| { ( consultados.
<contains_search_condition> )
{ { AND | & } | { AND NOT | &! CREATE TABLE Flags (Country
} | { OR | | } } nvarchar(30) NOT NULL, FlagColors
<contains_search_condition> [ varchar(200));
...n ] CREATE UNIQUE CLUSTERED INDEX
} FlagKey ON Flags(Country);
INSERT Flags VALUES ('France',
<simple_term> ::= 'Blue and White and Red');
{ word | "phrase" } INSERT Flags VALUES ('Italy',
<prefix term> ::= 'Green and White and Red');
{ "word*" | "phrase*" } INSERT Flags VALUES ('Tanzania',
<generation_term> ::= 'Green and Yellow and Black and
FORMSOF ( { INFLECTIONAL | Yellow and Blue');
THESAURUS } , <simple_term> [ ,...n SELECT * FROM Flags;
] ) GO

<generic_proximity_term> ::= CREATE FULLTEXT CATALOG TestFTCat;


{ <simple_term> | CREATE FULLTEXT INDEX ON
<prefix_term> } { { { NEAR | ~ } Flags(FlagColors) KEY INDEX FlagKey
{ <simple_term> | ON TestFTCat;
<prefix_term> } } [ ...n ] } GO

<custom_proximity_term> ::= SELECT * FROM Flags;


NEAR ( SELECT * FROM CONTAINSTABLE (Flags,
{ FlagColors, 'Green') ORDER BY RANK
DESC;
pág. 177
{ <simple_term> | SELECT * FROM CONTAINSTABLE
<prefix_term> } [ ,...n ] (Flags, FlagColors, 'Green or
| Black') ORDER BY RANK DESC;
( { <simple_term> |
<prefix_term> } [ ,...n ] )
[, <maximum_distance> [,
<match_order> ] ]
}
)

<maximum_distance> ::= {
integer | MAX }
<match_order> ::= { TRUE |
FALSE }

<weighted_term> ::=
ISABOUT
( { {
<simple_term>
| <prefix_term>
| <generation_term>
| <proximity_term>
}
[ WEIGHT ( weight_value ) ]
} [ ,...n ]
)

Definición

Esta función devuelve una tabla de cero, una o más filas para
Freetexttable() aquellas columnas que contienen valores que coinciden con el
significado y no solo con la redacción exacta del texto en
el freetext_string especificado. Se hace referencia a
FREETEXTTABLE como si fuera un nombre de tabla normal.
FREETEXTTABLE es útil para los mismos tipos de coincidencias
que FREETEXT (Transact-SQL).

pág. 178
Sintaxis Ejemplo

pág. 179
El siguiente ejemplo crea y completa
una tabla simple de dos columnas, que
enumera 3 condados y los colores de
sus banderas. Luego crea y llena un
catálogo de texto completo y un índice
en la tabla. Luego se demuestra la
sintaxis de FREETEXTTABLE.

CREATE TABLE Flags (Country


nvarchar(30) NOT NULL, FlagColors
FREETEXTTABLE (table , { varchar(200));
column_name | (column_list) | * } CREATE UNIQUE CLUSTERED INDEX
, 'freetext_string' FlagKey ON Flags(Country);
[ , LANGUAGE language_term ] INSERT Flags VALUES ('France',
[ , top_n_by_rank ] ) 'Blue and White and Red');
INSERT Flags VALUES ('Italy',
'Green and White and Red');
INSERT Flags VALUES ('Tanzania',
'Green and Yellow and Black and
Yellow and Blue');
SELECT * FROM Flags;
GO

CREATE FULLTEXT CATALOG TestFTCat;


CREATE FULLTEXT INDEX ON
Flags(FlagColors) KEY INDEX FlagKey
ON TestFTCat;
GO

SELECT * FROM Flags;


SELECT * FROM FREETEXTTABLE (Flags,
FlagColors, 'Blue');
SELECT * FROM FREETEXTTABLE
(Flags, FlagColors, 'Yellow');

pág. 180
Definición

Proporciona información de conexión ad hoc como parte de un


Opendatasource() nombre de objeto de cuatro partes sin usar un nombre de servidor
vinculado.

Sintaxis Ejemplo
Uso de OPENDATASOURCE con
SELECT y el controlador OLE DB de
SQL Server

El siguiente ejemplo utiliza el


controlador OLE DB de Microsoft para
SQL Server para acceder a la
HumanResources.Departmenttabla en
OPENDATASOURCE ( la base de datos AdventureWorks2012
'provider_name', 'init_string' en el servidor remoto Seattle1. Se
) SELECTutiliza una instrucción para
definir el conjunto de filas devuelto. La
cadena del proveedor contiene las
palabras clave Servery
Trusted_Connection. Estas palabras
clave son reconocidas por el
controlador OLE DB de SQL Server.

SELECT GroupName, Name,


DepartmentID
FROM OPENDATASOURCE('MSOLEDBSQL',
'Server=Seattle1;Database=Adventure
Works2016;TrustServerCertificate=Ye
s;Trusted_Connection=Yes;').HumanRe
sources.Department
ORDER BY GroupName, Name;

Definición

pág. 181
Se puede hacer referencia a OPENQUERY en la cláusula FROM de
una consulta como si fuera un nombre de tabla. También se puede
hacer referencia a OPENQUERY como la tabla de destino de una
instrucción INSERT, UPDATE o DELETE. Esto está sujeto a las
Openquery() capacidades del proveedor OLE DB. Aunque la consulta puede
devolver varios conjuntos de resultados, OPENQUERY solo devuelve
el primero.

pág. 182
Sintaxis Ejemplo

pág. 183
Ejecutar una consulta de
transferencia de ACTUALIZACIÓN

El siguiente ejemplo utiliza una


UPDATEconsulta de transferencia en
OPENQUERY ( linked_server ,'query' el servidor vinculado creado en el
) ejemplo A.

UPDATE OPENQUERY (OracleSvr,


'SELECT name FROM joe.titles WHERE
id = 101')
SET name = 'ADifferentName';

pág. 184
Definición

Se OPENROWSET puede hacer referencia a la función en la


cláusula FROM de una consulta como si fuera un nombre de tabla.

Openrowset() También OPENROWSET se puede hacer referencia a la función


como la tabla de destino de una instrucción INSERT, UPDATE
o DELETE, sujeto a las capacidades del proveedor OLE DB.

Aunque la consulta puede devolver varios conjuntos de


resultados, OPENROWSET solo devuelve el primero.
OPENROWSET también admite operaciones masivas a través de un
proveedor BULK integrado que permite que los datos de un archivo
se lean y se devuelvan como un conjunto de filas.

Sintaxis Ejemplo

pág. 185
OPENROWSET Uso de OPENROWSET con SELECT y
( { 'provider_name' el proveedor OLE DB de SQL Server
, { 'datasource' ; 'user_id' ; Native Client
'password' | 'provider_string' }
, { <table_or_view> | 'query' El siguiente ejemplo utiliza el proveedor
} OLE DB de SQL Server Native Client
| BULK 'data_file' , para acceder a la
{ FORMATFILE = HumanResources.Departmenttabla en
'format_file_path' [ <bulk_options> la base de datos AdventureWorks2012
] en el servidor remoto Seattle1. (Use
| SINGLE_BLOB | SINGLE_CLOB SQLNCLI y SQL Server lo redirigirá a la
| SINGLE_NCLOB } última versión del proveedor OLE DB
} ) de SQL Server Native Client). Se
SELECTusa una declaración para
<table_or_view> ::= [ catalog. ] [ definir el conjunto de filas devuelto. La
schema. ] object cadena del proveedor contiene las
palabras clave Servery
<bulk_options> ::= Trusted_Connection. Estas palabras
clave son reconocidas por el proveedor
[ , DATASOURCE = OLE DB de SQL Server Native Client.
'data_source_name' ]
SELECT a.*
[ , ERRORFILE = 'file_name' ] FROM OPENROWSET('SQLNCLI',
[ , ERRORFILE_DATA_SOURCE = 'Server=Seattle1;Trusted_Connection
'data_source_name' ] =yes;',
[ , MAXERRORS = maximum_errors ] 'SELECT GroupName, Name,
DepartmentID
[ , FIRSTROW = first_row ] FROM
[ , LASTROW = last_row ] AdventureWorks2012.HumanResources.D
[ , ROWS_PER_BATCH = epartment
rows_per_batch ] ORDER BY GroupName,
[ , ORDER ( { column [ ASC | Name') AS a;
DESC ] } [ ,...n ] ) [ UNIQUE ] ]

-- bulk_options related to input


file format
[ , CODEPAGE = { 'ACP' | 'OEM' |
'RAW' | 'code_page' } ]
[ , FORMAT = 'CSV' ]
[ , FIELDQUOTE =
'quote_characters']
[ , FORMATFILE =
'format_file_path' ]
pág. 186
[ , FORMATFILE_DATA_SOURCE =
'data_source_name' ]

pág. 187
Definición
Openxml()
OPENXML proporciona una vista de conjunto de filas sobre un
documento XML. Dado que OPENXML es un proveedor de conjuntos
de filas, OPENXML se puede usar en instrucciones Transact-SQL en
las que pueden aparecer proveedores de conjuntos de filas, como
una tabla, una vista o la función OPENROWSET.

Sintaxis Ejemplo

pág. 188
Usar una instrucción SELECT simple
con OPENXML.

El siguiente ejemplo crea una


representación interna de la imagen
XML mediante el uso de
sp_xml_preparedocument. A
continuación, se ejecuta una
SELECTinstrucción que utiliza un
OPENXMLproveedor de conjunto de
filas en la representación interna del
OPENXML( idoc int [ in] , documento XML.
rowpattern nvarchar [ in ] , [
flags byte [ in ] ] ) DECLARE @idoc INT, @doc
[ WITH ( SchemaDeclaration | VARCHAR(1000);
TableName ) ] SET @doc ='
<ROOT>
<Customer CustomerID="VINET"
ContactName="Paul Henriot">
<Order CustomerID="VINET"
EmployeeID="5" OrderDate="1996-07-
04T00:00:00">
<OrderDetail OrderID="10248"
ProductID="11" Quantity="12"/>
<OrderDetail OrderID="10248"
ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS"
ContactName="Carlos Gonzlez">
<Order CustomerID="LILAS"
EmployeeID="3" OrderDate="1996-08-
16T00:00:00">
<OrderDetail OrderID="10283"
ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>';
--Create an internal representation
of the XML document.
EXEC sp_xml_preparedocument @idoc
OUTPUT, @doc;

pág. 189
-- Execute a SELECT statement that
uses the OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc,
'/ROOT/Customer',1)
WITH (CustomerID
VARCHAR(10),
ContactName
VARCHAR(20));

pág. 190
Definición

Una función con valores de tabla que divide una cadena en filas de
String_Split() subcadenas, en función de un carácter separador especificado.

Sintaxis Ejemplo
Cadena de valores separados por
comas dividida
Analice una lista de valores separados
por comas y devuelva todos los tokens
que no estén vacíos:
STRING_SPLIT ( string ,
separator [ , enable_ordinal ] DECLARE @tags NVARCHAR(400) =
) 'clothing,road,,touring,bike'
SELECT value
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> '';

Definición

Devuelve información de seguimiento de cambios para una


CHANGETABLE(CHANGES) tabla. Puede usar esta declaración para devolver todos los cambios
de una tabla o cambiar la información de seguimiento de una fila
específica.

Sintaxis Ejemplo

pág. 191
CHANGETABLE ( Listado de todos los cambios que se
{ CHANGES <table_name> , hicieron desde una versión
<last_sync_version> específica.
| VERSION <table_name> ,
<primary_key_values> } El siguiente ejemplo enumera todos los
, [ FORCESEEK ] cambios que se realizaron en una tabla
) desde la versión especificada (
[AS] <table_alias> [ ( @last_sync_version). [Emp ID] y SSN
<column_alias> [ ,...n ] ) son columnas en una clave primaria
compuesta.
<primary_key_values> ::=
( <column_name> [ , ...n ] ) , DECLARE @last_sync_version bigint;
( <value> [ , ...n ] ) SET @last_sync_version = <value
obtained from query>;
SELECT [Emp ID], SSN,
SYS_CHANGE_VERSION,
SYS_CHANGE_OPERATION,
SYS_CHANGE_COLUMNS,
SYS_CHANGE_CONTEXT
FROM CHANGETABLE (CHANGES
Employees, @last_sync_version)
AS C;

pág. 192
Definición
CHANGETABLE(VERSION)
Devuelve información de seguimiento de cambios para una
tabla. Puede usar esta declaración para devolver todos los cambios
de una tabla o cambiar la información de seguimiento de una fila
específica.

Sintaxis Ejemplo
Detectar conflictos usando
CHANGETABLE(VERSION...)

El siguiente ejemplo muestra cómo


actualizar una fila solo si la fila no ha
cambiado desde la última
sincronización. El número de versión
de la fila específica se obtiene mediante
CHANGETABLE. Si la fila se ha
CHANGETABLE ( actualizado, no se realizan cambios y la
{ CHANGES <table_name> , consulta devuelve información sobre el
<last_sync_version> cambio más reciente en la fila.
| VERSION <table_name> ,
<primary_key_values> } -- @last_sync_version must be set
, [ FORCESEEK ] to a valid value
) UPDATE
[AS] <table_alias> [ ( SalesLT.Product
<column_alias> [ ,...n ] ) SET
ListPrice = @new_listprice
<primary_key_values> ::= FROM
( <column_name> [ , ...n ] ) , SalesLT.Product AS P
( <value> [ , ...n ] ) WHERE
ProductID = @product_id AND
@last_sync_version >= ISNULL (
(SELECT
CT.SYS_CHANGE_VERSION FROM
CHANGETABLE(VERSION
SalesLT.Product,
(ProductID),
(P.ProductID)) AS CT),
0);

pág. 193
Security Functions

Las siguientes funciones devuelven información que es útil para administrar la seguridad. Las funciones
adicionales se enumeran en Funciones criptográficas.

pág. 194
Definición
::fn_Trace_Geteventinfo()
Devuelve información sobre un evento que se está rastreando.

Sintaxis Ejemplo
fn_trace_geteventinfo ( trace_id ) El siguiente ejemplo devuelve
información sobre el seguimiento
número 2.

SELECT * FROM
fn_trace_geteventinfo(2) ;
GO

Definición
::fn_Trace_Getfilterinfo()
Devuelve información sobre los filtros aplicados a un seguimiento
especificado.

Sintaxis Ejemplo
fn_trace_getfilterinfo ( trace_id ) El siguiente ejemplo devuelve
información sobre todos los filtros en el
seguimiento número 2.

SELECT * FROM
fn_trace_getfilterinfo(2) ;
GO

Definición
::fn_Trace_Getinfo()
Devuelve información sobre un seguimiento especificado o todos los
seguimientos existentes.

Sintaxis Ejemplo

pág. 195
sys.fn_trace_getinfo ( { trace_id | El siguiente ejemplo devuelve
NULL | 0 | DEFAULT } ) información sobre todos los
seguimientos activos.

SELECT * FROM
sys.fn_trace_getinfo(0) ;
GO

pág. 196
Definición
::fn_Trace_Gettable()
Devuelve el contenido de uno o más archivos de rastreo en formato
tabular.

Sintaxis Ejemplo
fn_trace_gettable ( 'filename' , Uso de fn_trace_gettable para
number_files ) importar filas desde un archivo de
seguimiento

El siguiente ejemplo llama


fn_trace_gettabledentro de la
FROMcláusula de una
SELECT...INTOdeclaración.

USE AdventureWorks2012;
GO
SELECT * INTO temp_trc
FROM
fn_trace_gettable('c:\temp\mytrace.
trc', default);
GO

Definición
Has_Dbaccess()
Devuelve información sobre si el usuario tiene acceso a la base de
datos especificada.

Sintaxis Ejemplo
HAS_DBACCESS ( 'database_name' ) El siguiente ejemplo prueba si el
usuario actual tiene acceso a la base de
AdventureWorks2012datos.

SELECT
HAS_DBACCESS('AdventureWorks2012');
GO

Definición

pág. 197
original_db_name() Devuelve el nombre de la base de datos especificado por el usuario
en la cadena de conexión de la base de datos. Esta base de datos se
especifica mediante la opción sqlcmd-d (USE base de datos ).

pág. 198
Sintaxis Ejemplo

pág. 199
ORIGINAL_DB_NAME () Si no se especifica la base de datos
inicial, la función devuelve una cadena
vacía.

pág. 200
Definición
Is_Member()
Indica si el usuario actual es miembro del grupo de Microsoft Windows
especificado o del rol de la base de datos de SQL Server.

Sintaxis Ejemplo
IS_MEMBER ( { 'group' | 'role' } ) El siguiente ejemplo comprueba si el
usuario actual es miembro de un rol de
base de datos o un grupo de dominio de
Windows.

-- Test membership in db_owner and


print appropriate message.
IF IS_MEMBER ('db_owner') = 1
PRINT 'Current user is a member
of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') = 0
PRINT 'Current user is NOT a
member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') IS
NULL
PRINT 'ERROR: Invalid group /
role specified';
GO

-- Execute SELECT if user is a


member of ADVWORKS\Shipping.
IF IS_MEMBER ('ADVWORKS\Shipping')
= 1
SELECT 'User ' + USER + ' is a
member of ADVWORKS\Shipping.';
GO

Definición
Is_Srvrolemember()
Indica si un inicio de sesión de SQL Server es miembro del rol de
servidor especificado.

Sintaxis Ejemplo

pág. 201
IS_SRVROLEMEMBER ( 'role' [ , El siguiente ejemplo indica si el inicio
'login' ] ) de sesión de SQL Server para el usuario
actual es miembro del sysadminrol de
servidor fijo.

IF IS_SRVROLEMEMBER ('sysadmin') =
1
print 'Current user''s login is
a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER
('sysadmin') = 0
print 'Current user''s login is
NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER
('sysadmin') IS NULL
print 'ERROR: The server role
specified is not valid.';

pág. 202
Definición
Suser_Sid()
Devuelve el número de identificación de seguridad (SID) del nombre
de inicio de sesión especificado.

Sintaxis Ejemplo
SUSER_SID ( [ 'login' ] [ , Param2 Usar SUSER_SID
] )
El siguiente ejemplo devuelve el
número de identificación de seguridad
(SID) para el contexto de seguridad
actual.

SELECT SUSER_SID();

Definición
Suser_Sname()
Devuelve el nombre de inicio de sesión asociado con un número de
identificación de seguridad (SID).

Sintaxis Ejemplo
SUSER_SNAME ( [ server_user_sid ] ) Uso de SUSER_SNAME
El siguiente ejemplo devuelve el nombre
de inicio de sesión para el contexto de
seguridad actual.

SELECT SUSER_SNAME();
GO

Definición
User()
Permite insertar en una tabla un valor proporcionado por el sistema
para el nombre de usuario de la base de datos del usuario actual
cuando no se especifica ningún valor predeterminado.

Sintaxis Ejemplo

pág. 203
USER Usar USER para devolver el nombre
de usuario de la base de datos

El siguiente ejemplo declara una


variable como char, le asigna el valor
actual de USUARIO y luego imprime la
variable con una descripción de texto.

DECLARE @usr CHAR(30)


SET @usr = user
SELECT 'The current user''s
database username is: '+ @usr
GO

pág. 204
Definición
User_Id()
Devuelve el número de identificación de un usuario de la base de
datos.

Sintaxis Ejemplo
USER_ID ( [ 'user' ] ) El siguiente ejemplo devuelve el
número de identificación del
AdventureWorks2012usuario Harold.

USE AdventureWorks2012;
SELECT USER_ID('Harold');
GO

Definición
User_Name()
Devuelve un nombre de usuario de la base de datos a partir de un
número de identificación especificado.

Sintaxis Ejemplo
USER_NAME ( [ id ] ) Usar NOMBRE_USUARIO

El siguiente ejemplo devuelve el nombre


de usuario para el ID de usuario 13.

SELECT USER_NAME(13);
GO

String Functions

Las siguientes funciones escalares realizan una operación en un valor de entrada de cadena y devuelven una
cadena o un valor numérico:

pág. 205
Definición
Ascii()
Devuelve el valor del código ASCII del carácter más a la izquierda de
una expresión de carácter.

Sintaxis Ejemplo
ASCII ( character_expression ) Este ejemplo asume un conjunto de
caracteres ASCII y devuelve el
ASCIIvalor de 6 caracteres.

SELECT ASCII('A') AS A, ASCII('B')


AS B,
ASCII('a') AS a, ASCII('b') AS b,
ASCII(1) AS [1], ASCII(2) AS
[2];

Definición

Devuelve el carácter de un solo byte con el código entero


especificado, según lo definido por el conjunto de caracteres y la
codificación de la intercalación predeterminada de la base de datos
actual.

Char() Sintaxis Ejemplo


CHAR ( integer_expression ) Usar ASCII y CHAR para imprimir
valores ASCII de una cadena

Este ejemplo asume un conjunto de


caracteres ASCII. Devuelve el valor de
carácter para seis valores numéricos de
caracteres ASCII diferentes.

SELECT CHAR(65) AS [65], CHAR(66)


AS [66],
CHAR(97) AS [97], CHAR(98) AS [98],
CHAR(49) AS [49], CHAR(50) AS
[50];

pág. 206
Definición

Esta función busca una expresión de carácter dentro de una


segunda expresión de carácter y, si la encuentra, devuelve la
posición inicial de la primera expresión.

Sintaxis Ejemplo
Charindex() CHARINDEX ( expressionToFind , Devolver la posición inicial de una
expressionToSearch [ , expresión
start_location ] )
Este ejemplo busca bicycle en la
variable de valor de cadena buscada
@document.

DECLARE @document VARCHAR(64);


SELECT @document = 'Reflectors are
vital safety' +
' components of
your bicycle.';
SELECT CHARINDEX('bicycle',
@document);
GO

Definición
Difference()
Esta función devuelve un valor entero que mide la diferencia entre
los valores SOUNDEX() de dos expresiones de caracteres diferentes.

Sintaxis Ejemplo

pág. 207
DIFFERENCE ( character_expression , La primera parte de este ejemplo
character_expression ) compara los SOUNDEXvalores de dos
cadenas muy similares. Para una
intercalación Latin1_General,
DIFFERENCEdevuelve un valor de 4. La
segunda parte del ejemplo compara los
SOUNDEXvalores de dos cadenas muy
diferentes y, para una intercalación
Latin1_General, DIFFERENCEdevuelve
un valor de 0.

-- Returns a DIFFERENCE value of 4,


the least possible difference.
SELECT SOUNDEX('Green'),
SOUNDEX('Greene'),
DIFFERENCE('Green','Greene');
GO
-- Returns a DIFFERENCE value of 0,
the highest possible difference.
SELECT SOUNDEX('Blotchet-Halls'),
SOUNDEX('Greene'),
DIFFERENCE('Blotchet-Halls',
'Greene');
GO

pág. 208
Definición
Left()
Devuelve la parte izquierda de una cadena de caracteres con el
número de caracteres especificado.

Sintaxis Ejemplo
LEFT ( character_expression , Usar left con una columna
integer_expression )
El siguiente ejemplo devuelve los cinco
caracteres más a la izquierda de cada
nombre de producto en la Producttabla
de la base de datos
AdventureWorks2012.

SELECT LEFT(Name, 5)
FROM Production.Product
ORDER BY ProductID;
GO

Definición
Len()
Devuelve el número de caracteres de la expresión de cadena
especificada, sin incluir los espacios finales.

Sintaxis Ejemplo
LEN ( string_expression ) El siguiente ejemplo selecciona el
número de caracteres y los datos
FirstNamede las personas ubicadas en
Australia. Este ejemplo utiliza la base
de datos AdventureWorks.

SELECT LEN(FirstName) AS Length,


FirstName, LastName
FROM Sales.vIndividualCustomer
WHERE CountryRegionName =
'Australia';
GO

pág. 209
Definición
Lower()
Devuelve una expresión de carácter después de convertir los datos
de caracteres en mayúsculas a minúsculas.

Sintaxis Ejemplo
LOWER ( character_expression ) El siguiente ejemplo usa la
LOWERfunción, la UPPERfunción y
anida la UPPERfunción dentro de la
LOWERfunción al seleccionar nombres
de productos que tienen precios entre
$11 y $20.

-- Uses AdventureWorks
SELECT
LOWER(SUBSTRING(EnglishProductName,
1, 20)) AS Lower,
UPPER(SUBSTRING(EnglishProductName,
1, 20)) AS Upper,
LOWER(UPPER(SUBSTRING(EnglishProduc
tName, 1, 20))) As LowerUpper
FROM dbo.DimProduct
WHERE ListPrice between 11.00 and
20.00;

Definición
Ltrim()
Devuelve una expresión de carácter después de eliminar los
espacios en blanco iniciales.

Sintaxis Ejemplo
LTRIM ( character_expression ) El siguiente ejemplo usa LTRIM para
eliminar los espacios iniciales de una
expresión de caracteres.

SELECT LTRIM(' Five spaces are


at the beginning of this string.');

pág. 210
Definición
Nchar()
Devuelve el carácter Unicode con el código entero especificado, tal
como lo define el estándar Unicode.

Sintaxis Ejemplo
NCHAR ( integer_expression ) Uso de NCHAR y UNICODE

El siguiente ejemplo usa las funciones


UNICODEy NCHARpara imprimir el
UNICODEvalor y el NCHAR(carácter
Unicode) del segundo carácter de la
Københavncadena de caracteres, y para
imprimir el segundo carácter real, ø.

DECLARE @nstring NCHAR(8);


SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring,
2, 1)),

NCHAR(UNICODE(SUBSTRING(@nstring,
2, 1)));
GO

Definición

Devuelve la posición inicial de la primera aparición de un patrón en


Patindex() una expresión especificada, o cero si no se encuentra el patrón, en
todos los tipos de datos de texto y caracteres válidos.

Sintaxis Ejemplo

pág. 211
Ejemplo sencillo de PATINDEX.

El siguiente ejemplo comprueba una


cadena de caracteres corta ( interesting
data) para la ubicación inicial de los
caracteres ter.

SELECT position = PATINDEX('%ter%',


'interesting data');
PATINDEX ( '%pattern%' , Aquí está el conjunto de
expression ) resultados.

/*
position
--------
3
*/

Definición
Quotename()
Devuelve una cadena Unicode con los delimitadores agregados para
convertir la cadena de entrada en un identificador delimitado de
SQL Server válido.

pág. 212
Sintaxis Ejemplo

pág. 213
QUOTENAME ( 'character_string' El siguiente ejemplo toma la cadena de
[ , 'quote_character' ] ) caracteres abc[]defy usa los caracteres
[y ]para crear un identificador
delimitado de SQL Server válido.

SELECT QUOTENAME('abc[]def');

pág. 214
Definición
Replace()
Reemplaza todas las apariciones de un valor de cadena especificado
con otro valor de cadena.

Sintaxis Ejemplo
REPLACE ( string_expression , El siguiente ejemplo reemplaza la
string_pattern , string_replacement cadena cdecon .abcdefghicdexxx
)
SELECT
REPLACE('abcdefghicde','cde','xxx')
;
GO

Definición

Repite un valor de cadena un número específico de veces.

Sintaxis Ejemplo
Replicate() REPLICATE ( string_expression , Usando REPLICATE
integer_expression )
El siguiente ejemplo replica un
0carácter cuatro veces delante de un
código de línea de producción en la
base de datos AdventureWorks2012.

SELECT [Name]
, REPLICATE('0', 4) + [ProductLine]
AS 'Line Code'
FROM [Production].[Product]
WHERE [ProductLine] = 'T'
ORDER BY [Name];
GO

pág. 215
Definición
Reverse()
Devuelve el orden inverso de un valor de cadena.

Sintaxis Ejemplo
REVERSE ( string_expression) El siguiente ejemplo devuelve todos los
nombres de contacto con los caracteres
invertidos. Este ejemplo usa la base de
datos AdventureWorks2012.

SELECT FirstName,
REVERSE(FirstName) AS Reverse
FROM Person.Person
WHERE BusinessEntityID < 5
ORDER BY FirstName;
GO

Definición
Right()
Devuelve la parte derecha de una cadena de caracteres con el
número de caracteres especificado.

Sintaxis Ejemplo
RIGHT ( character_expression , Usar RIGHT con una columna
integer_expression )
El siguiente ejemplo devuelve los cinco
caracteres más a la derecha del nombre
de cada persona en la base de datos
AdventureWorks2012.

SELECT RIGHT(FirstName, 5) AS
'First Name'
FROM Person.Person
WHERE BusinessEntityID < 5
ORDER BY FirstName;
GO

pág. 216
Definición

Devuelve una cadena de caracteres después de truncar todos los


espacios finales.

Rtrim() Sintaxis Ejemplo


RTRIM ( character_expression ) El siguiente ejemplo toma una cadena
de caracteres que tiene espacios al final
de la oración y devuelve el texto sin los
espacios al final de la oración.

SELECT RTRIM('Removes trailing


spaces. ');

Definición
Soundex()
Devuelve un código de cuatro caracteres (SOUNDEX) para evaluar
la similitud de dos cadenas.

Sintaxis Ejemplo
SOUNDEX ( character_expression ) El siguiente ejemplo muestra la función
SOUNDEX y la función DIFERENCIA
relacionada. En el primer ejemplo,
SOUNDEXse devuelven los valores
estándar para todas las consonantes.
Devolver SOUNDEXfor Smithy
Smythedevuelve el mismo resultado de
SOUNDEX porque todas las vocales, la
letra y, las letras duplicadas y la letra
h, no están incluidas.

-- Using SOUNDEX
SELECT SOUNDEX ('Smith'), SOUNDEX
('Smythe');

pág. 217
Definición

Devuelve una cadena de espacios repetidos.

Sintaxis Ejemplo
Space() SPACE ( integer_expression ) El siguiente ejemplo recorta los
apellidos y concatena una coma, dos
espacios y los nombres de las personas
enumeradas en la Persontabla en
AdventureWorks2012.

USE AdventureWorks2012;
GO
SELECT RTRIM(LastName) + ',' +
SPACE(2) + LTRIM(FirstName)
FROM Person.Person
ORDER BY LastName, FirstName;
GO

Definición
Str()
Devuelve datos de caracteres convertidos a partir de datos
numéricos. Los datos de caracteres están justificados a la derecha,
con una longitud especificada y una precisión decimal.

Sintaxis Ejemplo
STR ( float_expression [ , length [ El siguiente ejemplo convierte una
, decimal ] ] ) expresión compuesta por cinco dígitos
y un punto decimal en una cadena de
caracteres de seis posiciones. La parte
fraccionaria del número se redondea a
un decimal.

SELECT STR(123.45, 6, 1);


GO

pág. 218
Definición

Una función con valores de tabla que divide una cadena en filas de
String_Split() subcadenas, en función de un carácter separador especificado.

Sintaxis Ejemplo
Cadena de valores separados por
comas dividida
Analice una lista de valores separados
por comas y devuelva todos los tokens
que no estén vacíos:
STRING_SPLIT ( string ,
separator [ , enable_ordinal ] DECLARE @tags NVARCHAR(400) =
) 'clothing,road,,touring,bike'
SELECT value
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> '';

Definición
Stuff()
La función STUFF inserta una cadena dentro de otra cadena.
Elimina una longitud específica de caracteres en la primera cadena
en la posición de inicio y luego inserta la segunda cadena en la
primera cadena en la posición de inicio.

Sintaxis Ejemplo
STUFF ( character_expression , El siguiente ejemplo devuelve una
start , length , cadena de caracteres creada al eliminar
replaceWith_expression ) tres caracteres de la primera cadena
abcdef, comenzando en la posición 2,
en be insertando la segunda cadena en
el punto de eliminación.

SELECT STUFF('abcdef', 2, 3,
'ijklmn');
GO

pág. 219
Definición
Substring()
Devuelve parte de una expresión de carácter, binario, texto o
imagen en SQL Server.

Sintaxis Ejemplo
SUBSTRING ( expression ,start , El siguiente ejemplo muestra cómo
length ) devolver solo una parte de una cadena
de caracteres. Desde la
sys.databasestabla, esta consulta
devuelve los nombres de la base de
datos del sistema en la primera
columna, la primera letra de la base de
datos en la segunda columna y el
tercer y cuarto carácter en la columna
final.

SELECT name, SUBSTRING(name, 1, 1)


AS Initial ,
SUBSTRING(name, 3, 2) AS
ThirdAndFourthCharacters
FROM sys.databases
WHERE database_id < 5;

Definición
Unicode()
Devuelve el valor entero, tal como lo define el estándar Unicode,
para el primer carácter de la expresión de entrada.

Sintaxis Ejemplo

pág. 220
UNICODE ( 'ncharacter_expression' ) Usando UNICODE y la función
NCHAR

El siguiente ejemplo utiliza las


funciones UNICODEy NCHARpara
imprimir el valor UNICODE del primer
carácter de la cadena Åkergatan 24y
para imprimir el primer carácter real,
Å.

DECLARE @nstring NCHAR(12);


SET @nstring = N'Åkergatan 24';
SELECT UNICODE(@nstring),
NCHAR(UNICODE(@nstring));

pág. 221
Definición
Upper()
Devuelve una expresión de caracteres con datos de caracteres en
minúsculas convertidos a mayúsculas.

Sintaxis Ejemplo
UPPER ( character_expression ) El siguiente ejemplo usa las funciones
UPPERy RTRIMpara devolver el apellido
de las personas en la
dbo.DimEmployeetabla para que esté
en mayúsculas, recortado y
concatenado con el nombre.

-- Uses AdventureWorks

SELECT UPPER(RTRIM(LastName)) + ',


' + FirstName AS Name
FROM dbo.DimEmployee
ORDER BY LastName;

Definición
Trim()
Elimina el carácter de espacio char(32)u otros caracteres
especificados del principio y el final de una cadena.

Sintaxis Ejemplo
-- Syntax for SQL Server and Azure Elimina el carácter de espacio de
SQL Database ambos lados de la cadena
TRIM ( [ characters FROM ] string )
El siguiente ejemplo elimina los
-- Syntax for Azure Synapse espacios antes y después de la palabra
Analytics test.
TRIM ( string )
SELECT TRIM( ' test ') AS
Result;

pág. 222
Definición
ConcatWs()
Esta función devuelve una cadena que resulta de la concatenación o
unión de dos o más valores de cadena de un extremo a otro. Separa
esos valores de cadena concatenados con el delimitador especificado
en el primer argumento de la función. ( CONCAT_WSindica
concatenar con separador ).

Sintaxis Ejemplo
CONCAT_WS ( separator, argument1, Concatenar valores con separador
argument2 [, argumentN]... Este ejemplo concatena tres columnas
de la tabla sys.databases, separando
los valores con un -.

SELECT CONCAT_WS( ' - ',


database_id, recovery_model_desc,
containment_desc) AS DatabaseInfo
FROM sys.databases;

System Statistical Functions

Las siguientes funciones escalares devuelven información estadística sobre el sistema.

Todas las funciones estadísticas del sistema son no deterministas. Esto significa que estas funciones no
siempre devuelven los mismos resultados cada vez que se las llama, incluso con el mismo conjunto de valores
de entrada.

pág. 223
Definición

Esta función devuelve el número de intentos de conexión, tanto


exitosos como fallidos, desde que se inició SQL Server por última
vez.

Sintaxis Ejemplo
Este ejemplo devuelve el recuento de
intentos de inicio de sesión a partir de
@@Connections la fecha y hora actuales.

SELECT GETDATE() AS 'Today''s Date


and Time',
@@CONNECTIONS @@CONNECTIONS AS 'Login Attempts';
/*Aquí está el conjunto de
resultados.
Today's Date and Time Login
Attempts
---------------------- ------------
-- 12/5/2006 10:32:45 AM 211023*/

Definición

Esta función devuelve la cantidad de tiempo que SQL Server ha


@@Cpu_Busy estado en funcionamiento activo desde su último
inicio. @@CPU_BUSYdevuelve un resultado medido en incrementos
de tiempo de CPU o "marcas".

Sintaxis Ejemplo

pág. 224
Este ejemplo devuelve la actividad de la
CPU de SQL Server, a partir de la fecha
y hora actuales. El ejemplo convierte
uno de los valores al floattipo de datos.
Esto evita problemas de
desbordamiento aritmético al calcular
un valor en microsegundos.

@@CPU_BUSY SELECT @@CPU_BUSY *


CAST(@@TIMETICKS AS FLOAT) AS 'CPU
microseconds',
GETDATE() AS 'As of' ;
/*Aquí está el conjunto de
resultados.
CPU microseconds As of
---------------- ------------------
-----
18406250 2006-12-05
17:00:50.600*/

pág. 225
Definición

Devuelve estadísticas de E/S para archivos de base de datos,


incluidos archivos de registro. En SQL Server, esta información
también está disponible desde la vista de administración
dinámica sys.dm_io_virtual_file_stats .

::fn_Virtualfilestats() Sintaxis Ejemplo


Mostrar información estadística para
una base de datos.

fn_virtualfilestats ( { database_id El siguiente ejemplo muestra


| NULL } , { file_id | NULL } ) información estadística para el ID de
archivo 1 en la base de datos con un ID
de 1.

SELECT *
FROM fn_virtualfilestats(1, 1);
GO

Definición

Devuelve el tiempo que SQL Server ha estado inactivo desde que se


inició por última vez. El resultado está en incrementos de tiempo de
CPU, o "marcas", y es acumulativo para todas las CPU, por lo que
puede exceder el tiempo real transcurrido.

Sintaxis Ejemplo

pág. 226
El siguiente ejemplo muestra la
devolución del número de milisegundos
que SQL Server estuvo inactivo entre la
hora de inicio y la hora actual. Para
evitar el desbordamiento aritmético al
@@IDLE convertir el valor a microsegundos, el
ejemplo convierte uno de los valores al
floattipo de datos.

SELECT @@IDLE * CAST(@@TIMETICKS AS


float) AS 'Idle microseconds',
GETDATE() AS 'as of';
/*Aquí está el conjunto de
@@Idle resultados.
I
Idle microseconds as of
----------------- -----------------
-----
8199934 12/5/2006
10:23:00 AM */

pág. 227
Definición

Devuelve el tiempo que SQL Server ha dedicado a realizar


operaciones de entrada y salida desde la última vez que se inició
SQL Server.

Sintaxis Ejemplo
@@Io_Busy El siguiente ejemplo muestra la
devolución del número de milisegundos
que SQL Server ha dedicado a realizar
operaciones de entrada/salida entre la
hora de inicio y la hora actual. Para
evitar el desbordamiento aritmético al
convertir el valor a microsegundos, el
ejemplo convierte uno de los valores al
@@IO_BUSY tipo de datos flotante.

SELECT @@IO_BUSY*@@TIMETICKS AS 'IO


microseconds',
GETDATE() AS 'as of';
/*Aquí hay un conjunto de
resultados típico:
IO microseconds as of
--------------- -------------------
---
4552312500 12/5/2006
10:23:00 AM */

Definición

Devuelve el número de paquetes de entrada leídos de la red por SQL


@@Pack_Received Server desde que se inició por última vez.

Sintaxis Ejemplo

pág. 228
El siguiente ejemplo muestra el uso de
@@PACK_RECEIVED.

@@PACK_RECEIVED SELECT @@PACK_RECEIVED AS 'Packets


Received';
/*Aquí hay un conjunto de
resultados de muestra.
Packets Received
----------------
128 */

pág. 229
Definición

Devuelve el número de paquetes de salida escritos en la red por SQL


Server desde que se inició por última vez.

@@Pack_Sent Sintaxis Ejemplo


El siguiente ejemplo muestra el uso de
@@PACK_SENT.

SELECT @@PACK_SENT AS 'Pack Sent';


@@PACK_SENT /*Aquí hay un conjunto de
resultados de muestra.
Pack Sent
-----------
291 */

Definición

Devuelve el número de errores de paquetes de red que se han


producido en las conexiones de SQL Server desde que se inició SQL
Server por última vez.

Sintaxis Ejemplo
@@Packet_Errors El siguiente ejemplo muestra el uso de
@@PACKET_ERRORS.

@@PACKET_ERRORS SELECT @@PACKET_ERRORS AS 'Packet


Errors';
/*Aquí hay un conjunto de
resultados de muestra.
Packet Errors
-------------
0 */
1
Definición
@@Timeticks
Devuelve el número de microsegundos por tick.

pág. 230
Sintaxis Ejemplo

pág. 231
SELECT @@TIMETICKS AS 'Time
@@TIMETICKS Ticks';

pág. 232
Definición

Devuelve el número de errores de escritura en disco encontrados


por SQL Server desde la última vez que se inició SQL Server.

Sintaxis Ejemplo
Este ejemplo muestra la cantidad de
errores encontrados por SQL Server en
la fecha y hora actuales.
@@Total_Errors SELECT @@TOTAL_ERRORS AS 'Errors',
@@TOTAL_ERRORS GETDATE() AS 'As of';
/*Aquí está el conjunto de
resultados.
Errors As of
----------- ----------------------
0 3/28/2003 12:32:11
PM */

Definición

Devuelve el número de lecturas de disco, no lecturas de caché, por


parte de SQL Server desde que se inició SQL Server por última vez.

Sintaxis Ejemplo

pág. 233
El siguiente ejemplo muestra la
devolución del número total de lecturas
y escrituras en disco a partir de la
fecha y hora actuales.
@@TOTAL_READ
SELECT @@TOTAL_READ AS 'Reads',
@@TOTAL_WRITE AS 'Writes',
GETDATE() AS 'As of';
/*Aquí está el conjunto de
resultados.
Reads Writes As of
@@Total_Read ----------- ----------- -----------
-----------
7760 97263
12/5/2006 10:23:00 PM */

Definición

Devuelve el número de escrituras en disco realizadas por SQL


Server desde que se inició SQL Server por última vez.

Sintaxis Ejemplo
El siguiente ejemplo muestra la
@@Total_Write devolución del número total de lecturas
y escrituras de disco a partir de la
@@TOTAL_WRITE fecha y hora actuales.

SELECT @@TOTAL_READ AS 'Reads',


@@TOTAL_WRITE AS 'Writes',
GETDATE() AS 'As of'
/*Aquí está el conjunto de
resultados.
Reads Writes As of
----------- ----------- -----------
-----------
7760 97263 12/5/2006
10:23:00 PM */

pág. 234
Text and Image Functions

Las funciones de texto e imagen operan en los tipos de datos TEXT, NTEXT e IMAGE.

pág. 235
Definición

Devuelve la posición inicial de la primera aparición de un patrón en


una expresión especificada, o cero si no se encuentra el patrón, en
todos los tipos de datos de texto y caracteres válidos.

Sintaxis Ejemplo
Ejemplo sencillo de PATINDEX.

El siguiente ejemplo comprueba una


cadena de caracteres corta ( interesting
data) para la ubicación inicial de los
caracteres ter.

Patindex() SELECT position = PATINDEX('%ter%',


'interesting data');
PATINDEX ( '%pattern%' , Aquí está el conjunto de
expression ) resultados.

/*
position
--------
3
*/

Definición

Devuelve el valor del puntero de texto que corresponde a


una columna text , ntext o image en formato varbinary . El valor del
puntero de texto recuperado se puede usar en instrucciones
READTEXT, WRITETEXT y UPDATETEXT.

Sintaxis Ejemplo

pág. 236
Uso de TEXTPTR.

El siguiente ejemplo utiliza la


TEXTPTRfunción para ubicar la
columna de imagenlogo asociada New
TEXTPTR ( column ) Moon Booksen la pub_infotabla de la
base de pubsdatos. El puntero de texto
se coloca en una variable local.@ptrval.
Textptr() USE pubs;
GO
DECLARE @ptrval VARBINARY(16);
SELECT @ptrval = TEXTPTR(logo)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon
Books';
GO

pág. 237
Definición

Una función text , ntext o image que verifica si un puntero de texto


específico es válido.

Sintaxis Ejemplo
TEXTVALID ( 'table.column' El siguiente ejemplo informa si existe
Textvalid() ,text_ ptr ) un puntero de texto válido para cada
valor en la logocolumna de la
pub_infotabla.

USE pubs;
GO
SELECT pub_id, 'Valid (if 1) Text
data'
= TEXTVALID ('pub_info.logo',
TEXTPTR(logo))
FROM pub_info
ORDER BY pub_id;
GO

/*Aquí está el conjunto de


resultados.
pub_id Valid (if 1) Text data
------ ----------------------
0736 1
0877 1
1389 1
1622 1
1756 1
9901 1
9952 1
9999 1
(8 row(s) affected)
*/

pág. 238
Bibliografía
Docs Microsoft. (2022). Obtenido de https://docs.microsoft.com/en-us/sql/t-
sql/functions/security-functions-transact-sql?view=sql-server-ver16
Freedomtutorials. (s.f.). Obtenido de
http://www.freedomtutorials.com/sqlserver/text-and-image-
functions.php
InterSystems Documentation. (2021). Obtenido de
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.P
age.cls?KEY=RSQL_CAST
Microsoft. (27 de 05 de 2022). Obtenido de https://docs.microsoft.com/en-
us/sql/t-sql/functions/string-functions-transact-sql?view=sql-server-
ver16
Microsoft. (27 de 05 de 2022). Obtenido de https://docs.microsoft.com/en-
us/sql/t-sql/functions/system-functions-transact-sql?view=sql-
server-ver16
Microsoft. (27 de 05 de 2022). Obtenido de https://docs.microsoft.com/en-
us/sql/t-sql/functions/system-statistical-functions-transact-
sql?view=sql-server-ver16
Microsoft.com. (26 de 02 de 2022). Obtenido de
https://docs.microsoft.com/en-us/sql/t-
sql/functions/functions?view=sql-server-ver16
SQLSERVER TUTORIAL.NET. (s.f.). Obtenido de
https://www.sqlservertutorial.net/sql-server-system-functions/
W3schools.com. (s.f.). Obtenido de
https://www.w3schools.com/sql/func_sqlserver_cast.asp

Conclusión
Esta investigación se realizo lo mas cuidadosa posible, por lo cual cada
comando tiene su ejemplo de uso, para poder recordar para que se utiliza
cada uno.
Las funciones de sistema de SQL server son muchas y siempre varean
dependiendo la versión que se maneje, esta investigación se reflejo en SQL
Server Management Studio 18. Por lo cual algunas funciones no reconoce
y estas se podrán activar o d lo contrario verificar que se pueda activar en
la versión requerida.

pág. 239

También podría gustarte