Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用现有SQL表中的数据创建新SQL表_Sql Server - Fatal编程技术网

Sql server 使用现有SQL表中的数据创建新SQL表

Sql server 使用现有SQL表中的数据创建新SQL表,sql-server,Sql Server,我试图在1个过程中从现有表中的数据创建并填充一个新表,但我一直收到一个关于重复键的错误。这必须在1个procedere文件内完成,因为它用于分配。我已经尝试使用SELECT INTO来填充最有利可图的内容,但没有成功 -- ================================================ -- Template generated from Template Explorer using: -- Create Procedure (New Menu).SQL --

我试图在1个过程中从现有表中的数据创建并填充一个新表,但我一直收到一个关于重复键的错误。这必须在1个procedere文件内完成,因为它用于分配。我已经尝试使用SELECT INTO来填充最有利可图的内容,但没有成功

-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      Daniel McClure
-- Create date: 11/17/2014
-- Description: Calculates The Most Profitable Titles
-- =============================================
CREATE PROCEDURE MostProf   
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

CREATE TABLE dbo.most_profitable
(
pub_id char(4) NOT NULL,
profit money
PRIMARY KEY (pub_id)
);

INSERT INTO dbo.most_profitable
(
   titles.pub_id
)
SELECT
titles.pub_id 
FROM titles


END
GO
错误:

违反主键约束“PK_uumost_pro_uuu2515f222534d60f1”。无法在对象“dbo.most_”中插入重复键


这很可能意味着原始表有重复项,即标题。pub_id当前不是唯一的列表。也就是说,你试图让它独一无二,但事实并非如此

要确认这一点,请运行以下查询:

SELECT titles.pub_id, COUNT(*) As CountForPub
FROM titles
GROUP BY titles.pub_id
ORDER BY CountForPub DESC
LIMIT 20

如果您看到任何酒吧id的计数大于1,您就知道您有重复的

谢谢大家!!我所要做的就是加入一个独特的,以避免倍数!