Esta página esta en desarrollo, Sean bienvenidos.

Sql Server

*******Sql server consultas basicas*******************

Ejemplo de como crear una base de datos en Sql server

create database school

**************************************************************************************

Ejemplo de como usar una base de datos en Sql server

use school

**************************************************************************************

Ejemplo de como crear una tabla en Sql server

CREATE TABLE Departamentos
(
No_Dep int primary key not null,
Nom_Dep varchar(20) not null,
Dep_Loc varchar(30) not null,

idDep varchar(30) not null default ‘Desconocido’

–colocar un valor predeterminado
)

Fecha de modificación: 2014-04-17

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

**************************************************************************************

Ejemplo de como insertar en una tabla registros en Sql server

insert into Departamentos(No_Dep,Nom_Dep,Dep_Loc)
values(10, ‘accounting’, ‘New York’)
insert into Departamentos(No_Dep,Nom_Dep,Dep_Loc)
values(20, ‘Research’, ‘Dallas’)
insert into Departamentos(No_Dep,Nom_Dep,Dep_Loc)
values(30, ‘Sales’, ‘Chicago’)
insert into Departamentos(No_Dep,Nom_Dep,Dep_Loc)
values(40, ‘Operations’, ‘Boston’)

**************************************************************************************

Ejemplo de una consulta basica  Sql server  “selccionar”

select * from articulo

**************************************************************************************

Ejemplo de como realizar una actualizacion en  una tabla en todos los campos basica  Sql server “actualizacion”

UPDATE CATCLIENTES  SET  Id_Cliente=’PRUEVA1′

**************************************************************************************

Ejemplo de como elimiar los campos de una tabla completa   Sql server  “Eliminar”

delete form  supervisores

**************************************************************************************

Ejemplo de como borrar una tabla o base de datos en   Sql server  “Eliminar”

drop table Usuarios

drop database  Usuarios

**************************************************************************************

actualización 29/03/2012

Este es el caso

tengo una tabla campo nombre y apellido(ejemplo) esta tabla tiene 20000 registros  lo que me piden es

– seleccionar todos los campos que tengan el apellido Martinez fácil “no”

consulta

select * from nombresEscuela where nombre like ‘%Martinez %’—Nota esta pagina no me acepta las comillas simples o dobles 

resultado todos los campos iguales a Martinez

  • Pero el resulatdo fue 1000 registros

Eduardo Martinez

  • 200 registros

Tutorial Martinez

  • y 3000

X Martinez

Ahora lo que deseo es saber cuantos nombres en especifico son,  no me interesa cuantos registros sean si se repiten a simple vista son 3

EduardoMartinez

Tutorial Martinez

X Martinez

En la comsulta anterior me dio un total de  4200 resgitro

ahora con esta consulta

select  DISTINCT nombre  from nombresEscuela where nombre like ‘%Martinez % ‘—Nota esta pagina no me acepta las comillas simples o dobles 

Ahora el resultado es

3 registros

  • EduardoMartinez
  •  Tutorial Martinez
  • X Martinez

Saludos espero les sirva a mi si me sirvió

Atte: Jemp_intrepido 

______________________________03/04/2012

Descripción del problema: tengo una base de datos con 1000 tablas, no existen modelos entidad relación etc. me piden que analize las relaciones de esa tabla con otras, sencillo no si fueran 3 o 4 tablas para agilizar ese tipo de complejos

escribimos la consulta que a continuación se presenta

SELECT TABLE_NAME,*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE ‘%Id_Cliente%’

en el campo ‘%Id_Cliente%’ debes de modificarlo por el campo que desees buscar

atte: jemp_intrepido

———————

Descripción:

Esta consulta te permite conocer en una tabla, los valores repetidos y cuantas veces se repiten.

select ejemplo,COUNT( ejemplo)
from nombreTabla group by campoQueSeDeseeAgrupar HAVING Count(*) > 1

fecha:2013-08-01

atte: jemp_intrepido

—————–

obtener lista de usuarios de sql server

descripción: Obtiene una lista de usuarios de sql server el encabezado de columna ha sido renombrado con una breve descripción.

select loginname as usuario,dbname as baseAsignada,hasaccess as acceso,
isntname = case
when isntname = ‘0’ then ‘Sesión de SQL Server’
when isntname = ‘1’ then ‘Sesión usuario o grupo de Windows.’
end,
sysadmin as Administrador ,securityadmin as ModificaAccesos,
serveradmin as cambiarConfiguracionesInstanciasDetenerInstancias
,setupadmin as AdministrarLinkedServers,processadmin as AdministraConexionesIniciarPausarInstancias,
diskadmin as AdministraRecursosDisco,dbcreator as CreabaseDatos from sys.syslogins

Saludos

fecha:2013-08-20

atte: jemp_intrepido

—————————————————————

Descripción: no se como explicarlo pero les comento para que use este query

Tengo una 2 tablas usuarios y accesos paginas

accesos paginas guardo los permisos de cada usuario para accesar a las deferentes paginas. en esta consulta muestra los accesos a las paginas que tiene cada usuario, y ademas se despliega a las paginas que no se tiene acceso.

select t1.campx, t2.campx, t2.campx
from nameTable t2 left outer join nameTable  t1
on t1.campx=t2.campx
and t1.campx=’condicion’ order by t1.campx

Nota:  t1, t2 son las alias de las tablas

Saludos

fecha:2013-08-29

atte: jemp_intrepido

—————————

Crear una nueva llave primaria compuesta por 2 o mas campos

ALTER TABLE nombreTabla ADD CONSTRAINT PK_nombreTabla
PRIMARY KEY CLUSTERED (nombreCampo1,nombreCampo2)

fecha 2013/09/06


Borrar una llave primaria

alter table nombreTabla drop nombreLlavePrimaria


 

Crear / Agregar una llave foránea “FOREIGN KEY ” SQL SERVER

Una llave foránea indica que entidad es la débil y que entidad es la fuerte, definiendo así una relación

ALTER TABLE NombreTabla

WITH CHECK ADD CONSTRAINT FK_NombreTabla_Nombre(s)Campos <-Nombre ForeingKey

FOREIGN KEY(Nombre(s)Campos)

REFERENCES [dbo].[NombreTablaReferencia] (Nombre(s)Campos)

GO


 

 

Tips sql server 2008 R2 Mantenimiento 

DBCC SHOWCONTIG(NombreTabla,Indice)   <- visualiza la fragmentacion de un indice

DBCC INDEXDEFRAG(NombreBD,nombreTabla,NombreIndice)<- desfragmenta un indice. //en caso que no se ponga el nombre de indice se desfragmentan todos los indices

Fecha 2013/11/26

——————–

Da a conocer a usuarios que son administradores del SQL SERVER

–Ojo solo tiene que excistir un administrador en una base de datos.

SELECT *–COUNT(spm.name)
FROM sys.server_role_members srm, sys.server_principals sp, sys.server_principals spm WHERE sp.name = ‘sysadmin’
AND sp.principal_id = srm.role_principal_id AND spm.principal_id = srm.member_principal_id;

Fecha:2013-12-03

atte: jemp_intrepido

———————————

Update entre tablas con join

UPDATE HisFac–<-alias
SET
campoTabla1=t2.campoTabla2,
campoTabla1=t2.campoTabla2,
campoTabla1=t2.campoTabla2,
campoTabla1=t2.campoTabla2
FROM
nombreTablaAlias HisFac INNER JOIN nombreTablaDos t2
ON
–camposA relacionar
HisFac.campoTabla1=t2.campoTabla2 and
HisFac.campoTabla1=t2.campoTabla2 and
HisFac.campoTabla1=t2.campoTabla2
where t2.campoTabla2=1 –<-codicionesTbla

Fecha:2013-12-06

atte: jemp_intrepido

———————————————–

Crear indice en un campo SQL Server 2008

create nonclustered index IX_nomTab_nomCamp–<-NombreIndice-usualmente es IX_NombreTabla_NombreCampo
on nomTab(nomCamp);

Fecha:2013-12-13

—————————————

Borrar indice en un campo SQL Server 2008

DROP INDEX NombreTabla.IX_NombreTabla_NombreCampo

Fecha:2013-12-13

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

——-

Contar todos las filas de todas las tablas que contenga una base de datos.

SELECT
sysobjects.Name
, sysindexes.Rows
FROM
sysobjects
INNER JOIN sysindexes
ON sysobjects.id = sysindexes.id
WHERE
type = ‘U’
AND sysindexes.IndId < 2
order by Rows desc

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Fecha:2014-01-23

—————————————–

Borrar registros sin bloquear la tabla.
SET ROWCOUNT int(valorNUmerico) –<-borrar cada x numero asignado
delete_more:–<-Minetras borra

DELETE from nombreTabla  where nombreCampo =condicionBorra

IF @@ROWCOUNT > (int cero)  GOTO delete_more
SET ROWCOUNT (int cero)

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Fecha:2014-01-24

——-

Borrar una cierta cantidad de registros de una tabla (TOP)

delete top (13)  from comentarios–Este es el caso, tengo 1000 registros y —deseo borrar 900 y que solo me queden 100

Fecha:2014-02-12

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Busqueda por mes SQL SERVER 2008 anexando el numero de registros encontrados

select
Convert(char(35), campoBusquedaFecha, 112),
substring(Convert(char(35), campoBusquedaFecha, 112),7,9),
COUNT(campoBusquedaFecha) as facturasDias

from nombreTabla WHERE
Convert(char(35), campoBusquedaFecha, 112)>=’20140201′
and
Convert(char(35), campoBusquedaFecha, 112)<=’20140214′
group by
Convert(char(35), campoBusquedaFecha, 112)
order by Convert(char(35), campoBusquedaFecha, 112) asc

Nota: El campo campoBusquedaFecha es de tipo DATETIME

eL formato de fecha para las busquedas son anioMesDia<-19000808

Fecha:2014-02-17

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Modificar el nombre de una columna de una tabla

EXEC sp_rename ‘usuario.Apellido’, ‘TetsApellido’  <- ‘NombreTabla.NombreColumna’,’NombreColumnaNueva’

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Agregar una columna a una tabla SQL Server

alter table NameTable

add NameCampo char(35) NOT NULL;

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

—-

 

Modificar el tipo de datos de una tabla SQL SERVER 2008

ALTER TABLE nombreTabla
ALTER COLUMN nombreCampoModificar char(100)

Fecha:2014-02-17

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Declarar variables en SQL SERVER 2008

DECLARE @idCategoria CHAR (35)

DECLARE @idCantidad CHAR (35)

Asignar un valor a una variable SQL SERVER 2008

SET @idCategoria=’2.1A’

Como usar una variable asignada en una consulta SQL SERVER 2008

select @idCantidad = Cantidad from dbo.Productos1 where ID_Proveedor=’4′ and ID_Categoria=@idCategoria

Fecha:2014-02-18

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

—————

Concatenar registros en una sola fila por id

Adjunto codigo
SELECT t1.ID,t1.Clientes,t1.dirección,
(

SELECT rtrim(t2.Teléfonos) + ‘, ‘
FROM Teléfonos t2
WHERE t1.Id=t2.id
ORDER BY Teléfonos
FOR XML PATH(”)

) AS Products

FROM clientes t1

 

jemp_intrepido

Fecha:2014-04-10

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

——-

 

Ejemplo para duplicar una fila SQL server 2008

 

INSERT INTO [NombreTable] (Campo1,Campo2,Campo3,Campo4) select Campo1,Campo2,Campo3,1519 from [NombreTable] where Campo1=‘300’

El valor 1519 corresponde al valor del campo4 como un ejemplo.

Fecha:2014-10-30

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

 

Ejemplo SPLIT SQL SERVER 2008

Adjunto URL  de referencia con el caso que a continuación se presenta:

 

http://www.todoexpertos.com/preguntas/5jibnd9rns4seqjt/como-programar-botones-guardar-y-borrar-en-vfp-9-con-tablas-relacionadas?selectedanswerid=5jjqtvics6ghcthp

jempduintreConsultaSQLSERVER2008

Comparto URL se referencia:

http://www.sqlservercentral.com/blogs/querying-microsoft-sql-server/2013/09/19/how-to-split-a-string-by-delimited-char-in-sql-server/

Adjunto query modificado:

CREATE FUNCTION [dbo].[fnSplitString]

(

@string NVARCHAR(MAX),

@delimiter CHAR(1)

)

RETURNS NVARCHAR(MAX)

as

BEGIN

declare @Return NVARCHAR(MAX),@ValueOutPutn varchar (max), @NameOuPut varchar (max)

DECLARE @start INT, @end INT

DECLARE @indice INT

SET @Return =‘ ‘ –@ValueOutPutn varchar (max), @NameOuPut varchar (max)

set @ValueOutPutn=‘Cantidad: ‘

set @NameOuPut=‘ Nombre: ‘

set @start = 1

set @end = CHARINDEX(@delimiter, @string)

SET @indice = 1

WHILE @start < LEN(@string) + 1 BEGIN

IF @end = 0

SET @end = LEN(@string) + 1

if @indice=1–{

SET @Return = @ValueOutPutn + SUBSTRING(@string, @start, @end @start) –10 + @start;

if @indice=3

SET @Return = @Return + @NameOuPut + SUBSTRING(@string, @start, @end @start) –10 + @start;

SET @Return = @Return

SET @start = @end + 1

SET @end = CHARINDEX(@delimiter, @string, @start)

SET @indice = @indice + 1

END

RETURN @return

END

Esto es solo de forma Nativa, favor de optimizar para su uso o implementación.

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Exportar información de SQL  2008 a Excel

 

Ejemplo  1

SELECT rtrim(NameField) as “clave”, rtrim(NameField) as “importe”

FROM NameTable as informacin

FOR XML AUTO, Elements, ROOT(‘nodo’)

 

<nodo>
<información>
<clave>000</clave>
<importe>2520</importe>
</información>
</nodo>

 

Ejemplo 2

SELECT rtrim(NameFile1) as “Campo1”, rtrim(NameFile2) as “Campo2”

FROM NameTable

FOR XML RAW(‘NodoHijo’) , ROOT(‘NodoPapa’)

<NodoPapa>
<NodoHijo Campo1=”valueFile1″ Campo2=”valueFile2″ />
<NodoHijo Campo1=”valueFile1″ Campo2=”valueFile2″ />
</NodoPapa>

 

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Sql Server column check

Descripción básica: Especifica los valores que acepta un campo.

Ejemplo: Check para el estatus de un usuario “Activo, Inactivo”.

CREATE TABLE Departamentos

(

No_Dep int primary key not null,

Nom_Dep varchar(20) not null,

Dep_Loc varchar(30) not null,

StatusUsuario char (3) CHECK (([StatusUsuario]=‘A’ OR [StatusUsuario]=‘I’)) DEFAULT ‘A’ –Creo el check y le asigno un valor por default.

)

Problemas frecuentes agrego el check a una tabla ya creada y me arroja errores al tratar de generarlo.

Solución 1 de varias: Verificar los valores actuales que concuerden con el check.

alter table nombreTabla

add constraint CK_nombreTabla_NombreCampo

CHECK(NombreCampo LIKE‘[F][0-9][0-9][0-9][0-9][0-9]’)

Estoy indicando que  el primer carácter debe de ser una letra “F” seguido por 5 valores numéricos.

Ejemplo:

F00000 <- Valido

F000d <- No valido

0F0000 <- No valido

FF000 <- No valido

D0000 <- No valido

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Validar un registro “Insert – Update” en SQL server 2008

Antes de empezar quiero comentarles que existen distintas formas de realizarlo, estas son las mas comunes:

  • Contando los registros y posteriormente insertarlo.
  • Con el famoso If exist, si existe actualiza y si no inserta.
  • Haciendo el insert directamente sobre la tabla, si se duplica la llave primaria, actualiza y si no lo va insertar.

Sin embargo yo lo hare con una instrucción tomando como referencia la lógica anterior:

Usare MERGE <- Inserta, borra y actualiza.

Realiza operaciones de inserción, actualización o eliminación en una tabla de destino según los resultados de una combinación con una tabla de origen.

–En esta parte, declaro mis variables y les asigno un valor a las mismas.

DECLARE @Valor varchar(30);

DECLARE @ID varchar(30);

set @ID=‘121’

set @Valor=‘ValorUpdate’

MERGE customers –<- Nombre de la tabla

USING (SELECT @ID AS ID) AS SRC ON SRC.ID = customers.customer_id –<-Tabla referenciada con el campo llave

WHEN MATCHED THEN

UPDATE SET customer_name = @Valor –<- Si existe le asigno el valor ‘ValorUpdate’

WHEN NOT MATCHED THEN

INSERT (customer_id, customer_name, city) VALUES (@ID,‘ValorInicialInsert’,’22’); –<- Si no existe  inserto el registro.

TableCustomers

Adicionalmente la instrucción tendrá que terminar en Punto y coma “;”

La imagen es un archivo con extensión .sql, descarga la imagen y cambiala la extencion a ,sql.

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Que es un servidor vinculado:

Un servidor vinculado permite obtener acceso a consultas heterogéneas distribuidas en orígenes de datos OLE DB.
Después de crear un servidor vinculado, las consultas distribuidas se pueden ejecutar en este servidor.
Las consultas pueden unir tablas de varios orígenes de datos.
Si el servidor vinculado se define como instancia de SQL Server, se pueden ejecutar procedimientos almacenados remotos.

Referencias:

https://msdn.microsoft.com/es-es/library/ms188279(v=sql.120).aspx
https://msdn.microsoft.com/es-es/library/ff772782(v=sql.120).aspx

Crear Servidor vinculado.
Consulte “http://tutorialesyopiniones.blogspot.mx/2013/04/como-se-crean-los-servidores-vinculados.html&#8221;
Hay muchos mas en internet pero este en lo personal me pareció mas fácil de entender.

Hacer consultas select con “LinkedServer y Openquery”

LinkedServer: nos ayuda a comunicarnos a otro servidor u otro motor de base de datos.
SELECT * FROM [NombreInstaciaSql].AdventureWorks.dbo.CatProveedores

Openquery: Se puede hacer referencia a OPENQUERY en la cláusula FROM de una consulta como si fuera un nombre de tabla.
SELECT * FROM OPENQUERY ([NombreInstaciaSql],’Select * from AdventureWorks.dbo.CatProveedores’)

En ambos casos se tendran que poner entre los signos “[]”, consulta normal NombreBasededatos.”dbo.”NombreTabla
Ejemplo

SELECT * FROM [mipc\SQLEXPRESS].AdventureWorks.dbo.miTabla
SELECT * FROM OPENQUERY ([mipc\SQLEXPRESS],’Select * from AdventureWorks.dbo.miTabla’)

Si no se coloca “dbo”, nos va a marcar un error de sintaxis.

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Ejemplo del Ciclo While en Sql Server

declare @count int –Declaración de variable “NombreVariable, TipoDato”

set @count =0  –Se le asigna el valor a cero

while (@count <= 100)  — A groso modo, mientras mi contador sea menor o igual a cero vaz a hacer…

begin –Se indica que aquí empieza el bucle del ciclo

print ‘Hola soy el numero: ‘ + convert(nvarchar(20),@count)  — Mientras no sea mayor o igual a 100, va ha imprimir el texto con el valor de la variable que se asigno.

set @count=@count + 1  –En esta línea estoy diciendo, a la variable que declare en cada ciclo del bucle hasta que no cumpla la condición, aumentale 1

end –Se indica que aquí termina el bucle del ciclo

 

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Nube de etiquetas

A %d blogueros les gusta esto: