我试图将数据从一个表插入到另一个表。Table1没有唯一标识符,但Table2有。我尝试插入using NEWID()
,但是出现语法错误。有人可以告诉我我在做什么错吗?
INSERT INTO Table2 (NEWID(), [Item Description], [Item Cost])
SELECT Description, Cost FROM Table1
WHERE Id = '1'
如果尚未创建Table2,则可以使用以下查询:
SELECT
NEWID() AS [ID]
,Description AS [Item Description]
,Cost AS [Item Cost]
INTO Table2
FROM Table1
WHERE Id = '1'
但是,如果已经创建了表2的模式,并且该表具有用于标识符的列,则可以使用:
INSERT INTO Table2 ([ID], [Item Description], [Item Cost])
SELECT
NEWID()
, Description
, Cost
FROM Table1
WHERE Id = '1'
但是,如果您尚未为Table2创建架构,那么我建议使用以下代码为表格创建架构并使用中的数据填充其中的数据Table1
。
CREATE TABLE Table2 (
[ID] INT Identity
,[Item Description] AS NVARCHAR(MAX)
,[Item Cost] AS NUMERIC(18, 2))
INSERT INTO Table2([Item Description] , [Item Cost])
SELECT
Description
, Cost
FROM Table1
WHERE Id = '1'
将ID列设置为Identity会为您不必担心填充的每一行自动生成一个UNIQUE标识符号。该数字是递增的,默认情况下,每行从1开始递增1。
您还可以通过将[ID]列定义为来定义起始编号和增量值[ID] INTEGER IDENTITY(1000, 2)
,这将使起始值1000,增量将为2(但这仅是FYI)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句