Archive for the ‘SQL Server’ Category
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) + ')'
Todos los clientes con el mismo zip code
Interesante self-join
SELECT c2.name FROM customer c, customer c2 WHERE c.customer_id = 648 AND c.zipcode = c2.zipcode;
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 '\'
EXECUTE permission denied on object sp_sdidebug, database master, owner dbo.
Este error choto(EXECUTE permission denied on object ‘sp_sdidebug’, database ‘master’, owner ‘dbo’.) se cura con:
GRANT EXECUTE ON sp_sdidebug TO 'username';
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);
You are currently browsing the archives for the SQL Server category.