首页 > 解决方案 > 调用标识列而不从源插入任何数据

问题描述

我有一个在 ID Ex 上设置了 Identity 列的表:

Create table Customer
(
  ID Int identity (1,1),
  FirstName varchar(20),
  PhNumber int,
)

我在其他数据库上有一个表填充这个表所以我写了类似的东西

Create or alter view abcCustomer 
As 
Select 
  ?  as ID
  Fname as FirstName,
  Pnumber as phnumber
From dbo.Scustomer (this is my table in source)

在这里,我们仅在目标中创建 ID 列,但不确定如何调用或从源调用什么,以便它不会影响 AbcCustomer 视图并填充目标表中的身份记录以及源表中的 FirstName 和 phNumber。

谁能帮助我应该写什么来代替?为了让我的表填充为标识列,因为除非并且直到我们从源调用 ID 列,否则它最终会出现错误。

标签: sql-server

解决方案


如果要将源客户表中的数据插入目标客户表,那么您应该以这种方式编写查询 -

选项 1 - 如果您想使用与源表中相同的标识,则打开标识,以便您能够在标识列中插入值(请参阅下面的查询)

SET IDENTITY_INSERT 客户开启

插入客户(ID、FirstName、PhNumber) 从 dbo.Scustomer 中选择 ID 作为 ID Fname 作为 FirstName,Pnumber 作为 phnumber

SET IDENTITY_INSERT 员工关闭

选项 2 - 如果要在源表中生成新标识,请使用以下查询。

Insert Customer (FirstName, PhNumber) 从 dbo.Scustomer 中选择 Fname 作为 FirstName,Pnumber 作为 phnumber


推荐阅读