我有一个WinForms应用程序,它根据给定的表动态创建表,例如:
SELECT * INTO TempTable FROM MyTable WHERE 1=2
我希望使用上述语法在特定Temp tables
下创建filegroup
。
在文件组下创建表的语法是:
CREATE TABLE [dbo].[TempTable](
[RECORDID] [numeric](10, 0) NOT NULL,
--etc etc
) ON [TempFileGroup] TEXTIMAGE_ON [TempFileGroup]
是否可以使用上面的语法在特定文件组下创建表?
答案 0 :(得分:1)
我希望使用上述语法在特定文件组下创建这些Temp表
从SQL Server 2017+
开始,您可以使用ON filegroup
语法。
<强> INTO clause 强>
SELECT ... INTO 在默认文件组中创建一个新表,并将查询中的结果行插入其中。
[ INTO new_table ] [ ON filegroup]
<强>文件组强>
指定将在其中创建新表的文件组的名称。指定的文件组应存在于数据库中,否则SQL Server引擎会引发错误。仅从SQL Server 2017开始支持此选项。
来自MSDN的示例:
将新表创建为另一个表的副本并将其加载到指定的文件组
ALTER DATABASE [AdventureWorksDW2016] ADD FILEGROUP FG2;
ALTER DATABASE [AdventureWorksDW2016]
ADD FILE
(
NAME='FG2_Data',
FILENAME = '/var/opt/mssql/data/AdventureWorksDW2016_Data1.mdf'
)
TO FILEGROUP FG2;
GO
SELECT * INTO [dbo].[FactResellerSalesXL] ON FG2 from [dbo].[FactResellerSales]
答案 1 :(得分:0)