
你这个写法是错误的应该是连接你需要插入的数据库
例如你要从mydb数据库复制hrmresource 到mtdb数据库中进行备份数据库 语句应该是
use mtdb
go
select into hrmresource FROM mydbdbohrmresource
1、原表存在的话这样用:insert into a select from b
2、原表不存在的话这样用:select into a from b
sql语句常用优化技巧:
1、避免在where子句中使用 is null 或 is not null 对字段进行判断。
如:select id from table where name is null
在这个查询中,就算我们为 name 字段设置了索引,查询分析器也不会使用,因此查询效率底下。为了避免这样的查询,在数据库设计的时候,尽量将可能会出现 null 值的字段设置默认值,这里如果我们将 name 字段的默认值设置为0,那么我们就可以这样查询:
select id from table where name = 0
2、避免在 where 子句中使用 != 或 <> *** 作符。
如:select name from table where id <> 0
数据库在查询时,对 != 或 <> *** 作符不会使用索引,而对于 < ,<= , = , > , >= , BETWEEN AND,数据库才会使用索引。因此对于上面的查询,正确写法应该是:
select name from table where id < 0
union all
select name from table where id > 0
这里我们为什么没有使用 or 来链接 where 后的两个条件呢?这就是我们下面要说的第3个优化技巧。
3、避免在 where 子句中使用 or来链接条件。
如:select id from tabel where name = 'UncleToo' or name = 'PHP'
这种情况,我们可以这样写:
select id from tabel where name = 'UncleToo'
union all
select id from tabel where name = 'PHP'
4、少用 in 或 not in。
虽然对于 in 的条件会使用索引,不会全表扫描,但是在某些特定的情况,使用其他方法也许效果更好。
如:select name from tabel where id in(1,2,3,4,5)像这种连续的数值,我们可以使用 BETWEEN AND,如:select name from tabel where id between 1 and 5
5、注意 like 中通配符的使用。
下面的语句会导致全表扫描,尽量少用。
如:select id from tabel where name like'%UncleToo%'
而下面的语句执行效率要快的多,因为它使用了索引:
select id from tabel where name like'UncleToo%'
MSSQL中是不能这样复制 粘贴的。
可以这样呀:select from [表1] into [表1复件]
这样是复制数据,不能复制索引、触发器、关系等。
记得在下次备份数据之前执行一句:truncate table [表1复件],消除[表1复件] 中的数据,以免数据重复。
把a的表结构复制到a1表,1=2不复制数据,如果要复制数据,就不要whereselect
into
a1
from
a
where
1=2注意:这种方式不能复制主键、索引等信息如果要全部复制,只能是在a表上按右键,选择“编写表脚本为”=》create然后在这个结构基础上把a改成a1(注:要在设置里选择编写索引脚本)
在SQL Server Management Studio中,使用“SQL Server导入和导出向导”,可以很容易地复制表。
如果一定要使用语句,假设你的架构是dbo,在DBERP数据库中运行:
select into U_物料编码 from DBTESTdboU_物料编码
如果有索引,创建索引。如果有约束,创建约束。
如果两个数据库不在同一个实例,先创建连接服务器。
以上就是关于SQL select into语句向另一个数据库中拷贝表全部的内容,包括:SQL select into语句向另一个数据库中拷贝表、如何用sql语句复制一张表、SQL数据库怎么重新复制表啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)