SQL-Change值基于外键(输入/输出)

时间:2014-03-20 11:24:06

标签: sql sql-server database foreign-keys

我正在尝试创建一个MS SQL数据库,我对此很陌生。 假设我有表格列

Table1=[Client_ID, Client_Name]
Table2=[Product, Client_ID]. (Client_ID is a FK to Table1)

现在我想更新Table 2中的数据,我已在Table 1中获得了一些信息。如果我只知道T2Product,有没有办法插入Client_Name? (以某种方式根据他的名字在第一个表格中查找client_ID)如果我在Table1中没有该特定客户端,如果在插入T2期间可以插入,该怎么办?

此外,我需要从T2获取数据,但我希望看到一个[Product, Client_Name]的表格。在SQL中可以进行这种查找/替换吗?

我知道我可以事先尝试解决这些问题 - 我使用Excel作为访问我的数据库的前端,但我希望有一种更简单的方法来使用SQL本身。

1 个答案:

答案 0 :(得分:0)

您可以按如下方式插入表2

'You are passing @Product, @Client_Name

'First look for whether client name is present in table1
declare @clientId as integer;

select @clientId =Client_ID from Table1 where Client_Name=@Client_Name

if @clientId >0 'When there is client name in Table1
begin
insert into table2
values(@Product, @clientId)
end

else 'There is no client name, so we have to insert client name first then gets its id
begin

insert into table1
values(@Client_Name)

'Get id of newly added client, you can done this many way, but here is the simplest way like previous

select @clientId=Client_ID from Table1 where Client_Name=@Client_Name

'Now insert into table2
insert into table2
values(@Product, @clientId)

end

您可以使用加入

以您想要的方式获取数据
Select Table2.Product, Table1.Client_Name from table1 inner join table2 on table1.Client_ID = table2.Client_ID