Archivo de la categoría: SQL Server

Ver version de SQL Server en un query

Para ver la version del servidor.

SELECT 'SQL Server ' 
+ CAST(SERVERPROPERTY('productversion') AS VARCHAR) + ' - ' 
+ CAST(SERVERPROPERTY('productlevel') AS VARCHAR) + ' (' 
+ CAST(SERVERPROPERTY('edition') AS VARCHAR) + ')'

Cambiar el pass a un usuario de sql-server

Si se es sysadmin:

sp_password [ [ @OLD = ] 'old_password' , ]
{ [ @NEW =] 'new_password' }
[ , [ @loginame = ] 'login' ]

Sino, loguearse como el usuario y:

sp_password 'old_password' ,'new_password'

Recuperar el id del ultimo registro insertado

Algo muy comun es querer saber el id del ultimo registro insertado, aca posteo un ejemplo de como hacer eso para una base de datos SQL Server en c#:

SqlConnection conn= new SqlConnection(
ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString
);
string insertStr =
"INSERT INTO [tabla]([texto],[fecha]) VALUES(@texto,getDate())
;SELECT  Scope_Identity();";
SqlCommand cmd=new SqlCommand(insertStr,conn);
cmd.Parameters.Add("@texto", SqlDbType.NVarChar).Value="El texto va aca";
cmd.Connection.Open();
string ret=cmd.ExecuteScalar().ToString();
cmd.Connection.Close();

La parte clave esta en la sentencia Select Scope_Identity() del sql.

Filas con 100%

Si una fila de tu tabla tiene un valor que incluya la frase 100% proceder asi:

SELECT * FROM tablename WHERE x LIKE '%100[%]%'

o

SELECT * FROM tablename WHERE x LIKE '%100\%%' ESCAPE '\'

Obtener fechas en SQL Server

El primer dia del mes:

SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

El Ultimo dia del mes:

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate()  )+1, 0));


El Lunes de la semana actual:

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)


Primer dia del año:

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

Ultimo dia del mes anterior:

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()  ), 0));

Ultimo dia del año anterior:

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() ), 0))

Primer lunes del mes:

SELECT DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(DAY,getdate()),getdate())), 0);