
1、select * into destTbl from srcTbl。
2、insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl。
以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的:
第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。
第二句(insert into select from)要求目标表(destTbl)存在,由于目标表已经存在,所以我们除了插入源表(srcTbl)的字段外,还可以插入常量。
拓展资料:结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。sql 语句就是对数据库进行 *** 作的一种语言。
常见语句:
1、更新:update table1 set field1=value1 where 范围。
2、查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)。
3、排序:select * from table1 order by field1,field2 [desc]。
4、求和:select sum(field1) as sumvalue from table1。
5、平均:select avg(field1) as avgvalue from table1。
6、最大:select max(field1) as maxvalue from table1。
7、最小:select min(field1) as minvalue from table1[searator]。
SQL Server可以用if exists来判断存储过程
if exists(select 1 from sysobjects where name='存储过程名')
drop procedure 存储过程名
go
数据库表
if exists(select 1 from sysobjects where name='表名')
drop table 表名
go
数据库
IF exists(select 1 from sysdatabases where name='数据库名')
drop database 数据库名
go
索引
if exists (select 1 from sysindexes where name = '索引名')
drop index 表名.索引名
go
视图
if exists (select 1 from sysindexes where name = '视图名')
drop view 视图名
go
总结一下:
查 存储过程、数据库表 使用 sysobjects 表,
查 数据库 使用 sysdatabases 表,
查 索引、视图 使用 sysindexes 表
这些是查系统表的,那么查普通表怎么查?嗯
if exists(select 1 from 表名 where 条件)
[begin] --begin和end 相当于“{}”存在,把后面多句整合成一个整体
要做的 *** 作
[end]
go
PS1:if exists这个语法貌似还有其他的用法,建议去查一查,很好用很好用,用会了会上瘾我会说?
PS2:这个go挺好用,像断点,他会把前面一个go和后面一个go之间的代码运行生效后才会继续运行后面的代码,比如:刚进入SQL Server的时候默认是进入master库,先看看下面2段语句的结果
use bbs
create table 1
go
和
use bbs
go
create table 1
go
第一句 会在master建一个table1,然后进入bbs库;第二句 会进入bbs库 然后在bbs库建table1表
PS2:select 1 from。。。。这里的1主要是加快搜索速度,这种只查询是否存在的情况下,如果查到数据就显示1,这样可以大大地加快搜索速度,查询的结果是有多少条数据就有多少个1
你好,很高兴回答你的问题。我理解你的这个需求可以用下面的语句实现。
insert into table_a (m) select 'efg' as m from table_a where m='abc'
其他字段自行补一下。
如果主键不是自增的话,还需要考虑下主键值。
如果有帮助到你,请点击采纳。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)