请教一个SQL拼接语句

yingxiongmingduan 2012-02-20 08:14:48
我是用C#写的:
string Sqltext = " update a set a.cc=‘’
我现在是判断一个A表中有的 ,B表中没有的就把A表的数据更新到B表去,如果有就更新其他需要字段,请问这个SQL语句怎么拼写?A表和B表有个相同的字段进行关联,不是写存储过程是在程序了拼SQL语句。
一个直接拼写就我能搞定,但是加一个循环请问怎么写,我是C#写的
这个前面怎么加IF条件呢?string Sqltext = " update a set a.cc=‘’


...全文
197 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingxiongmingduan 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sql77 的回复:]
引用 10 楼 yingxiongmingduan 的回复:
引用 7 楼 travylee 的回复:
引用 6 楼 sql77 的回复:

引用 4 楼 yingxiongmingduan 的回复:
我是C#程序中写 不是SQL存储过程

看了回答再思考一下可不可行。


顶一个,C#有独立的版块

777来帮忙一下

用3楼语句,先更新存在的,再插入不存在的,拼接成……
[/Quote]
我需要先判断有没有 没有再插入,插入后再更新的其他的字段
SQL77 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yingxiongmingduan 的回复:]
引用 7 楼 travylee 的回复:
引用 6 楼 sql77 的回复:

引用 4 楼 yingxiongmingduan 的回复:
我是C#程序中写 不是SQL存储过程

看了回答再思考一下可不可行。


顶一个,C#有独立的版块

777来帮忙一下
[/Quote]
用3楼语句,先更新存在的,再插入不存在的,拼接成一条语句即可
you_tube 2012-02-21
  • 打赏
  • 举报
回复
用存储过程,,,
[Quote=引用 11 楼 yingxiongmingduan 的回复:]
其他朋友也来看看啦
[/Quote]
yingxiongmingduan 2012-02-21
  • 打赏
  • 举报
回复
其他朋友也来看看啦
yingxiongmingduan 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 travylee 的回复:]
引用 6 楼 sql77 的回复:

引用 4 楼 yingxiongmingduan 的回复:
我是C#程序中写 不是SQL存储过程

看了回答再思考一下可不可行。


顶一个,C#有独立的版块
[/Quote]
777来帮忙一下
烟波钓 2012-02-21
  • 打赏
  • 举报
回复

if not exists(select * from Talble_A where [ID]=@ID)
insert Table_A (--要插入的列--) select --要插入的列-- from Talbe_B where [ID]=@ID

你自己看着改改 这是大体思路
yingxiongmingduan 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yanbuodiao 的回复:]
SQL code


if exists(select [Name] from tb1 where [Name]='张三')
update tb1 set [Phone]='123' where [Name]='张三'
else
insert tb1 values('张三','123')
end


把这个搞……
[/Quote]

我要先判断A表中没有 再从B表里插入进去
烟波钓 2012-02-21
  • 打赏
  • 举报
回复

if exists(select [Name] from tb1 where [Name]='张三')
update tb1 set [Phone]='123' where [Name]='张三'
else
insert tb1 values('张三','123')
end

把这个搞成整体的SQl语句 C#中把该穿进去的参数都传禁区,就是你从A表中查询的数据
烟波钓 2012-02-21
  • 打赏
  • 举报
回复

if exists(select [Name] from tb1 where [Name]='张三')
update tb1 set [Phone]='123' where [Name]='张三'
else
insert tb1 values('张三','123')
end
yingxiongmingduan 2012-02-21
  • 打赏
  • 举报
回复
就是A表和B表的就一个相同的字段,A表的主键是ID自增的,有点麻烦 请教大家了
大力水手 2012-02-20
  • 打赏
  • 举报
回复


UPDATE B SET COL1=A.COL1,COL2=A.COL2 ,.. FROM A WHERE A.ID=B.ID

--楼上可行
p2227 2012-02-20
  • 打赏
  • 举报
回复
我现在是判断一个A表中有的 ,B表中没有的就把A表的数据更新到B表去

A表中有的什么东西更新到B表去?记录还是字段还是什么?
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sql77 的回复:]

引用 4 楼 yingxiongmingduan 的回复:
我是C#程序中写 不是SQL存储过程

看了回答再思考一下可不可行。
[/Quote]

顶一个,C#有独立的版块
SQL77 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yingxiongmingduan 的回复:]
我是C#程序中写 不是SQL存储过程
[/Quote]
看了回答再思考一下可不可行。
yingxiongmingduan 2012-02-20
  • 打赏
  • 举报
回复
应该要写一个IF吧?
yingxiongmingduan 2012-02-20
  • 打赏
  • 举报
回复
我是C#程序中写 不是SQL存储过程
SQL77 2012-02-20
  • 打赏
  • 举报
回复

UPDATE B SET COL1=A.COL1,COL2=A.COL2 ,.. FROM A WHERE A.ID=B.ID

INSERT B (ID,COL1,COL2...)SELECT ID,COL1,COL2... FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE B.ID=A.ID)
叶子 2012-02-20
  • 打赏
  • 举报
回复


--跨表连查更新
create table m_name (id int,name varchar(4))
insert into m_name
select 1,'张三' union all
select 2,'李四' union all
select 3,'王五'

select * from m_name
/*
id name
----------- ----
1 张三
2 李四
3 王五
*/

create table m_chengji (name varchar(4),kemu int,chengji int,id sql_variant)
insert into m_chengji
select '张三',1,95,null union all
select '张三',2,92,null union all
select '张三',3,91,null union all
select '李四',1,56,null union all
select '李四',2,76,null union all
select '李四',3,99,null union all
select '王五',1,57,null union all
select '王五',2,100,null union all
select '王五',3,67,null

select * from m_chengji
/*
name kemu chengji id
---- ----------- ----------- -----------
张三 1 95 NULL
张三 2 92 NULL
张三 3 91 NULL
李四 1 56 NULL
李四 2 76 NULL
李四 3 99 NULL
王五 1 57 NULL
王五 2 100 NULL
王五 3 67 NULL
*/

update m_chengji
set id = a.id from m_chengji b left join m_name a on a.[name]=b.[name]

yingxiongmingduan 2012-02-20
  • 打赏
  • 举报
回复
有没有人在啊

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧