Dev*_*ris 11 sql t-sql sql-server
我期待创建一个临时表,在编译报表时用作中间表.
有点背景我将VB 6应用程序移植到.net
要创建表我可以使用...
SELECT TOP 0 * INTO #temp_copy FROM temp;
Run Code Online (Sandbox Code Playgroud)
这会创建一个空的temp副本,但它不会创建主键
有没有办法创建临时表加上约束?
我之后应该创建约束吗?
或者我最好只使用create table创建表,我不想这样做,因为表中有45列,它会填充大量不必要的过程.
该表是必需的,因为很多人可能同时生成报告,因此我不能使用单个中间表
根据设计,SELECT INTO不会带来约束(PK,FK,Unique),默认值,检查等.这是因为SELECT INTO实际上可以同时从多个表中拉出(通过FROM子句中的连接).由于SELECT INTO从您指定的表中创建一个新表,因此SQL无法确定您要保留哪些约束,以及您不想保留哪些约束.
您可以编写一个过程/脚本来自动创建约束,但是为了获得最小的增益,可能需要付出太多努力.
你必须做一个或另一个:
我也会这样做而不是TOP 0
SELECT * INTO #temp_copy FROM temp WHERE 1 = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62133 次 |
| 最近记录: |