{"id":1912,"date":"2020-05-26T17:56:50","date_gmt":"2020-05-26T17:56:50","guid":{"rendered":"http:\/\/manualsqlserver.com\/?p=1912"},"modified":"2020-05-26T17:56:50","modified_gmt":"2020-05-26T17:56:50","slug":"uso-de-select-into-en-un-filegroup","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=1912","title":{"rendered":"Uso de Select into en un Filegroup"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"198\" height=\"221\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect__D.png\" alt=\"\" class=\"wp-image-1913\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Uso de Select Into en un Filegroup<\/h2>\n\n\n\n<p>La instrucci\u00f3n Select permite extraer la informaci\u00f3n guardada en las tablas, en ocasiones es necesario conservar los datos de una consulta y para eso  podemos crear una tabla con el resultado de la consulta usando la opci\u00f3n Into (Ver Opciones de Select) seguido del nombre de la tabla que  generalmente puede ser una tabla de uso temporal (Ver Tablas Temporales). Tambi\u00e9n se puede guardar el resultado de una consulta en una vista, la bondad de la vista es que se actualizar\u00e1 cuando las tablas de las que se cre\u00f3 esta se actualicen.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Por otro lado, los archivos de una base de datos (Ver Archivos de base de datos) est\u00e1n ordenados en Grupos de archivos (Ver Grupos de archivos), esto permite que podamos elegir la ubicaci\u00f3n y nombre del archivos, tama\u00f1o inicial, tama\u00f1o m\u00e1ximo y crecimiento de cada uno de los archivos de la base de datos al crearla (Ver Crear Base de datos) y tambi\u00e9n modificando la base de datos (Ver Modificaci\u00f3n de la Base de datos: Grupos y archivos).<\/p>\n\n\n\n<p>Una buena pr\u00e1ctica es que los objetos temporales se creen en un grupo cuyos archivos est\u00e9n ubicados en uno de los discos m\u00e1s r\u00e1pidos y donde exista mas espacio, es posible dirigir la creaci\u00f3n de las tablas generadas de manera temporal con la opci\u00f3n Into de la instrucci\u00f3n Select usando la opci\u00f3n On NombreGrupo.<\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p class=\"has-normal-font-size\"><strong>Versi\u00f3n:<br>V\u00e1lido desde SQL Server 2016 en adelante.<br>Permisos:<br>Necesita el permiso de Create Table<\/strong><\/p>\n\n\n\n<p style=\"font-size:24px\"><strong>Crear tablas en un grupo de archivos espec\u00edfico<\/strong><\/p>\n\n\n\n<p><strong>Sintaxis para create table<\/strong><br>Select Campo1, Campo2, \u2026 <strong>into TablaTemporal on NombreGrupo<\/strong><br>from TablaOrigen \u2026<br><strong>Note despu\u00e9s del uso de la opci\u00f3n into el nombre del grupo donde se crear\u00e1 la tabla. <a href=\"https:\/\/manualsqlserver.com\/?p=192\" target=\"_blank\" rel=\"noreferrer noopener\">Ver Select<\/a><\/strong><\/p>\n\n\n\n<p style=\"font-size:24px\"><strong>Ejemplo<\/strong><\/p>\n\n\n\n<p><strong>Usando la base de datos Northwind<\/strong><br>use Northwind<br>go<\/p>\n\n\n\n<p><strong>Agregar un grupo de archivos y luego un archivo en la unidad E:<br>El grupo<br><\/strong>Alter database Northwind add filegroup Temporal<br>go<br><strong>El archivo<\/strong><br>xp_Create_subdir &#8216;E:\\Temp&#8217;<br>go<br>Alter database Northwind add file<br>(name = &#8216;Temporal&#8217;, filename = &#8216;E:\\Temp\\Temporal.ndf&#8217;)<br>to filegroup Temporal<br>go<\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>Ejercicio 1<\/strong><\/p>\n\n\n\n<p><strong>Generar una tabla con los productos que tengan unidades por atender<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if exists (select name from sys.tables where name = 'ProductosPorAtender')\n    Begin\n        Drop table ProductosPorAtender\n    End\nselect P.ProductID As 'Codigo', P.ProductName As 'Descripcion',\n       P.UnitPrice As 'Precio', P.UnitsOnOrder As 'Por atender' \n       into ProductosPorAtender on Temporal\n    from Products As P\n    where P.UnitsOnOrder>0\n    order by &#91;Por atender] desc\ngo<\/code><\/pre>\n\n\n\n<p>Ver los datos de la tabla<br>select * from ProductosPorAtender<br>go<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_00.png\" alt=\"\" class=\"wp-image-1914\" width=\"652\" height=\"604\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_00.png 540w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_00-300x278.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Si se desea ver la ubicaci\u00f3n de la tabla<br>sp_help ProductosPorAtender<br>go<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_01-1024x389.png\" alt=\"\" class=\"wp-image-1915\" width=\"715\" height=\"271\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_01-1024x389.png 1024w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_01-300x114.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_01-768x292.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_01.png 1116w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/figure>\n\n\n\n<p>Tambien al ver las propiedades de la tabla, en la opci\u00f3n Almacenamiento\n(Storage) se visualiza el grupo de archivos donde se ha creado.<\/p>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_02.png\" alt=\"\" class=\"wp-image-1916\" width=\"660\" height=\"595\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_02.png 692w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_02-300x271.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<p>Ejercicio 2<\/p>\n\n\n\n<p>Crear una tabla con las \u00d3rdenes de 1997 donde se compraron mas de 200 productos<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">if exists (select name from sys.tables where name = 'Ordenes1997Mas200Productos')\n    Begin\n        Drop table Ordenes1997Mas200Productos\n    End\nselect O.OrderID As 'Orden', FORMAT(O.OrderDate,'dd\/MM\/yyyy') As 'Fecha',\n        sum(D.Quantity) As 'Cantidad'\n       into Ordenes1997Mas200Productos on Temporal\n    from Orders As O\n        join [Order Details] As D on O.OrderID = D.OrderID \n    where YEAR(O.OrderDate) = 1997\n    Group by O.OrderID, FORMAT(O.OrderDate,'dd\/MM\/yyyy')\n    having sum(D.Quantity)>200\ngo\n<\/pre>\n\n\n\n<p style=\"font-size:18px\"><strong>Complementar los conocimientos con:<\/strong><\/p>\n\n\n\n<p><strong><a href=\"https:\/\/manualsqlserver.com\/?p=225\" target=\"_blank\" rel=\"noreferrer noopener\">Agrupamientos en SQL Server<\/a><\/strong><br><a href=\"https:\/\/manualsqlserver.com\/?p=215\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Uso de Joins<\/strong><\/a><br><strong><a href=\"https:\/\/manualsqlserver.com\/?p=207\" target=\"_blank\" rel=\"noreferrer noopener\">Funciones de agregado<\/a><\/strong><\/p>\n\n\n\n<p>Ver los registros<br>select * from Ordenes1997Mas200Productos<br>go<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_03.png\" alt=\"\" class=\"wp-image-1917\" width=\"543\" height=\"530\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_03.png 346w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQLServer_UsoOnFilegroupSelect_03-300x293.png 300w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/figure>\n\n\n\n<p style=\"font-size:22px\"><strong>Limitaciones y restricciones<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>No es posible especificar una variable de tabla o un par\u00e1metro con valores de tabla como la nueva tabla.<\/li><li>No es posible usar SELECT \u2026 INTO para crear una tabla particionada, incluso cuando la tabla fuente est\u00e1 particionada. SELECT \u2026 INTO no usa el esquema de partici\u00f3n de la tabla de origen; en su lugar, la nueva tabla se crea en el grupo de archivos predeterminado. Para insertar filas en una tabla particionada, primero debe crear la tabla particionada y luego usar la instrucci\u00f3n INSERT INTO \u2026 SELECT \u2026 FROM.<\/li><li>Los \u00edndices (Ver \u00cdndices), las restricciones (Ver Constraints) y los triggers (Ver Triggers) definidos en la tabla de origen no se transfieren a la nueva tabla, ni se pueden especificar en la instrucci\u00f3n SELECT \u2026 INTO. Si estos objetos son necesarios, puede crearlos despu\u00e9s de ejecutar la instrucci\u00f3n SELECT \u2026 INTO.<\/li><li>Especificar una cl\u00e1usula ORDER BY (Ver Ordenamiento) no garantiza que las filas se inserten en el orden especificado.<\/li><li>Cuando se incluye una columna dispersa en la lista de selecci\u00f3n, la propiedad de la columna dispersa no se transfiere a la columna en la nueva tabla. Si esta propiedad es necesaria en la nueva tabla, modifique la definici\u00f3n de la columna despu\u00e9s de ejecutar la instrucci\u00f3n SELECT \u2026 INTO para incluir esta propiedad.<\/li><li>Cuando se incluye una columna calculada en la lista de selecci\u00f3n, la columna correspondiente en la nueva tabla no es una columna calculada. Los valores en la nueva columna son los valores que se calcularon en el momento en que se ejecut\u00f3 SELECT \u2026 INTO.<\/li><\/ul>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Uso de Select Into en un Filegroup La instrucci\u00f3n Select permite extraer la informaci\u00f3n guardada en las tablas, en ocasiones es necesario conservar los datos de una consulta y para eso podemos crear una tabla con el resultado de la consulta usando la opci\u00f3n Into (Ver Opciones de Select) seguido del nombre de la tabla &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=1912\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1913,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[20,101,210],"class_list":["post-1912","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consultasdedatos","tag-create-table","tag-filegroup","tag-select-into","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1912"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1912\/revisions"}],"predecessor-version":[{"id":1918,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1912\/revisions\/1918"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1913"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}