sql 使用主键(Microsoft SQL Server)不正确创建临时表的示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 使用主键(Microsoft SQL Server)不正确创建临时表的示例相关的知识,希望对你有一定的参考价值。

-- 1.) Problematic way
-- This example will fail on a second execution (when first table not dropped, even in case it is executed in different connection or user context).
-- PK_SomeTable will already exist in tempdb
CREATE TABLE #SomeTable
    (
      Id INT IDENTITY(1, 1) ,
      [Name] [varchar](255) NULL ,
      CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED ( [Id] ASC )
    )
-- Output:
/*
Msg 2714, Level 16, State 5, Line 3
There is already an object named 'PK_SomeTable' in the database.
Msg 1750, Level 16, State 0, Line 3
Could not create constraint. See previous errors.
*/

-- 2.) safer way 
-- Remind: always drop a temporary table when no longer needed
CREATE TABLE #SomeTable
    (
      Id INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
      [Name] [varchar](255) NULL ,
      CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED ( [Id] ASC )
    )
 /*
 Do some work
 */
 DROP TABLE #SomeTable

以上是关于sql 使用主键(Microsoft SQL Server)不正确创建临时表的示例的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server CE 中的每个表都必须有一个主键吗?

Microsoft SQL 查询 - 从第二个表返回最后一条记录

使用查询从 Microsoft SQL Server 导出数据到目标数据

Microsoft Access SQL 逗号分隔值

在 Microsoft SQL Server 2008 R2 中重置自动增量

第四篇:SQL语法基础