5 de octubre de 2011

Obtener fecha sin la hora (otra versión)

SELECT CAST(CONVERT(VARCHAR(10), getdate(), 111) AS DATETIME)

Obtener la fecha sin la hora

SELECT CAST(CAST(YEAR(getdate()) AS VARCHAR(4)) + '/' +
       CAST(MONTH(getdate()) AS VARCHAR(2)) + '/' +
       CAST(DAY(getdate()) AS VARCHAR(2)) AS DATETIME)

Ejecutar un script desde la linea de comandos

osql -Sntserverx -Usa -Pmypassword -dBASE20111005 -i "E:\File\scripts\Script1.sql"

Dividir un nombre en más de dos partes

DECLARE @FullName VARCHAR(100)
SET @FullName = 'John Doe Lopez'
SELECT PARSENAME(REPLACE(@FullName, ' ', '.'), 3) AS [Last2Name],
       PARSENAME(REPLACE(@FullName, ' ', '.'), 2) AS [FirstName],
       PARSENAME(REPLACE(@FullName, ' ', '.'), 1) AS [LastName]

Dividir nombre completo en apellidos

DECLARE @FullName VARCHAR(100)
SET @FullName = 'Juan Perez'
SELECT SUBSTRING(@FullName, 1, CHARINDEX(' ', @FullName) - 1) AS [FirstName],SUBSTRING(@FullName, CHARINDEX(' ', @FullName) + 1, LEN(@FullName)) AS [LastName]

Generar un número al azar

SELECT ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [RandomNumber],Contrato,Grupo,Integrante
From Contratos where contrato > 400000

Controlar el error División entre cero

SELECT ISNULL([Numerator] / NULLIF([Denominator], 0), 0) AS [Percentage] FROM [Table1]

SELECT CASE WHEN [Denominator] = 0 THEN 0 ELSE [Numerator] / [Denominator] END AS [Percentage]
FROM [Table1]

Modifica la columna de una tabla

ALTER TABLE [dbo].[Customers] ALTER COLUMN [CustomerID] INT NOT NULL

Cambiar el tamaño de la columna

ALTER TABLE [dbo].[Customers] ALTER COLUMN [FirstName] VARCHAR(50)

Conocer si una tabla tiene llave primaria

IF OBJECTPROPERTY( OBJECT_ID( '[dbo].[Customers]' ), 'TableHasPrimaryKey' ) = 1
   PRINT '[dbo].[Customers] table has a primary key.'