Posted by Miguel Egea | Posted in Noticias | Posted on 18-12-2011
0
Hoy en el grupo de noticias de SQL Server vi un post en el que se preguntaba por como generar los comandos de insert de una tabla, sin embargo es fácil confundirse y no buscar esa generación en el lugar adecuado, así pues, me decidí a escribir un paso a paso sobre como hacer esto
- Lo primero será concetar el object explorer a un servidor sql

- Desplegaremos la opcion Databases (en la aplicación traducida seguramente se llame bases de datos)

- Sobre una base de datos pulsamos boton derecho, Task- y dentro generate scripts..

- En ese momento nos aparecerá un wizard de 4 pasos en el que seleccionaremos los objetos de base de datos, especificaremos las opciones de scripting, revisaremos lo que hemos hecho y por último se generará el script.

- Tras pulsar next encontraremos una pantallla que nos pedirá que seleccionemos los objetos, en nuestro caso vamos a seleccionar 3 tablas.

- Tras selecionar las tablas nos pide las opciones de scripting, en esta opción aparece un botón advanced, es en las opciones avanzadas donde se puede configurar que clase de script vamos a generar.

- En las opciones avanzadas vemos que se puede elegir que se genere el objeto, pero también sus datos, o ambas cosas. eso es lo que hemos hecho en nuestro caso
-

- Tras elegir scthema an Data, seguimos el asistente, hasta el final, primero revisando las opciones que hemos tomado.

- Comprobando que funcionaron, finalmente.

- Despues abrimos el fichero y este es una parte del script generado.

De esta forma pueden generarse script, no solo con la estructura, sino también con algunos datos importantes de nuestro proyecto sin necesidad de generar complicados scripts para hacerlo.
Posted by Miguel Egea | Posted in Noticias | Posted on 06-12-2011
0
Ya están listas para la descarga todas las sesiones del ultimo 24 horas de PASS que organizaron nuestros compañeros y amigos de LATAM, podeis acceder a las grabaciones desde aquí
Posted by Miguel Egea | Posted in Basicos Newsgroup, Relacional | Posted on 03-12-2011
0
graba el contenido del código T-SQL en un fichero que se llame reindexa.SQL El código está sacado de los libros en pantalla de la ayuda del producto.
Una vez que tengas ese fichero (llamado en mi caso c:\reindexa.sql ejecuta desde la linea de comandos esta línea
c:\>sqlcmd -S localhost -E -d tubasededatos -i c:\reindex.sql
con esto se ejecutará el script que en principio debe reindexar toda tu base de datos. recuerda cambiar en la ejecutcion de arriba donde pone tubasededatos por el nombre de tu base de datos.
SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname nvarchar(130);
DECLARE @objectname nvarchar(130);
DECLARE @indexname nvarchar(130);
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command nvarchar(4000);
-- Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function
-- and convert object and index IDs to names.
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
INTO #work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
-- Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;
-- Open the cursor.
OPEN partitions;
-- Loop through the partitions.
WHILE (1=1)
BEGIN;
FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag;
IF @@FETCH_STATUS < 0 BREAK;
SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;
SELECT @indexname = QUOTENAME(name)
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;
SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;
-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding.
IF @frag < 30.0
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE';
IF @frag >= 30.0
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD';
IF @partitioncount > 1
SET @command = @command + N' PARTITION=' + CAST(@partitionnum AS nvarchar(10));
EXEC (@command);
PRINT N'Executed: ' + @command;
END;
-- Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;
-- Drop the temporary table.
DROP TABLE #work_to_do;
print "reindexación completada"
GO |
Posted by Miguel Egea | Posted in Noticias | Posted on 02-12-2011
0
La semana del 12 de Octubre se celebró la convención anual de la organización mundial de usuarios de SQL Server (PASS), el PASS Summit 2011. En este gran evento se realizaron anuncios muy importantes acerca de Microsoft SQL Server 2012. Son tantas las novedades que necesitamos al menos 12 horas para poder contarte las principales.
El 12 de Diciembre, de 12 del mediodía a 12 de la noche, te esperamos en “Las 12 horas de SQL Server 2012”. Un evento totalmente online, en el que en la comodidad de tu casa u oficina podrás disfrutar de 12 sesiones técnicas en las que trataremos de AlwaysON, Power View, el proyecto Apollo y mucho más…
Organizado por el Grupo de Usuarios de SQL de España (PASS Spanish Group), todas las sesiones serán impartidas por expertos y MVPs de SQL Server. Contaremos asimismo con la participación de expertos en SQL del grupo de Producto de Microsoft Corporation en Redmond.
¡Te esperamos el 12/12 a las 12!