我有一个表,在ID上设置了“身份”列 例如:
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 View并填充目标表中的身份记录以及源中的FirstName和phNumber桌子。
任何人都可以帮我代替?
写什么,以便将我的表填充为标识列,因为除非并且直到我们从源调用ID列,否则它最终会出错。 / p>
答案 0 :(得分:0)
有很多方法可以从源表中获取ID和其他数据!
使用条件条件(可以使用存储过程):
Declare @i as int = 1
Select Id, FName, PhNumber From dbo.SCustomer Where Id = @i
set @i = @i+1
使用偏移量:
Declare @i as int = 1
Select Id, FName, PhNumber from Dbo.Sccustomer Order By Id Offset @i Rows Fetch
Next @i Rows Only
Set @i = @i+1
答案 1 :(得分:0)
如果要将数据从源客户表插入目标客户表,则应以这种方式编写查询-
选项1-如果要使用与源表中相同的标识,请打开该标识,以便能够在标识列中插入值(请参阅下面的查询)
设置IDENTITY_INSERT客户打开
插入客户 (ID,名字,电话号码) 选择 ID作为ID Fname为FirstName, Pnumber作为phnumber 来自dbo.Scustomer
SET IDENTITY_INSERT员工已关闭
选项2-如果要在源表中生成新标识,请使用以下查询。
插入客户 (名字,电话号码) 选择 Fname为FirstName, Pnumber作为phnumber 来自dbo.Scustomer