SqlServer日常积累

1. 将一个表的数据插入另一个表

--第一种情况

(1)如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:

Insert Into 目标表 Select * From 来源表;    eg.  Insert Into newArticles Select * From articles;

(2)如果只希望导入指定字段,可以用这种方法:

Insert Into 目标表 (字段1, 字段2, ...) Select 字段1, 字段2, ... From 来源表;

--第二种情况

(3)如果将一个表的数据放在另外一个不存在的表:

Select * Into  目标不存在的表 From 来源表

(4)如果只希望导入指定字段,可以用这种方法:

Select 字段1,字段2,... Into 目标不存在的表 From 来源表

2. sql修改表的字段类型

alter table 表名 alter column 字段名 新的字段类型    eg.  alter table mytable alter column mycol1 int default 0

3. 远程导入表数据(不同服务器数据库之间的数据操作)

方法一:

--创建链接服务器

exec sp_addlinkedserver   ‘ITSV ‘, ‘ ‘, ‘SQLOLEDB ‘, ‘远程服务器名或ip地址 ‘

exec sp_addlinkedsrvlogin  ‘ITSV ‘, ‘false ‘,null, ‘用户名 ‘, ‘密码 ‘

--查询:  select * from ITSV.数据库名.dbo.表名

--导入: select * into 表 from ITSV.数据库名.dbo.表名

--不再使用时删除链接服务器

exec sp_dropserver  ‘ITSV ‘, ‘droplogins ‘

方法二:

--连接远程/局域网数据(openrowset/openquery/opendatasource)

(1)openrowset

--查询:  select * from openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)

--生成本地表:  select * into 表 from openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)

--把本地表导入远程表:  insert openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)  select * from 本地表

--更新本地表:

update b  set b.列A=a.列A

from openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)as a inner join 本地表 b

on a.column1=b.column1

(2)openquery用法需要创建一个连接

--首先创建一个连接创建链接服务器

exec sp_addlinkedserver   ‘ITSV ‘, ‘ ‘, ‘SQLOLEDB ‘, ‘远程服务器名或ip地址 ‘

--查询:   select * From openquery(ITSV,  ‘Select *  From 数据库.dbo.表名 ‘)

--把本地表导入远程表:  insert openquery(ITSV,  ‘SELECT *  FROM 数据库.dbo.表名 ‘)  select * from 本地表

--更新本地表:  update b  set b.列B=a.列B  FROM openquery(ITSV,  ‘SELECT * FROM 数据库.dbo.表名 ‘) as a  inner join 本地表 b on a.列A=b.列A

(3)opendatasource/openrowset

Select *  From opendatasource( ‘SQLOLEDB ‘,  ‘Data Source=服务器名;User ID=登陆名;Password=密码 ‘ ).数据库名.dbo.表名

--把本地表导入远程表

4.Ad Hoc Distributed Queries的启用与关闭

启用Ad Hoc Distributed Queries:

exec sp_configure ‘show advanced options‘,1

reconfigure

exec sp_configure ‘Ad Hoc Distributed Queries‘,1

reconfigure

关闭Ad Hoc Distributed Queries:

exec sp_configure ‘Ad Hoc Distributed Queries‘,0

reconfigure

exec sp_configure ‘show advanced options‘,0

reconfigure

时间: 2024-10-10 08:57:22

SqlServer日常积累的相关文章

SqlServer日常积累(二)

1.Like运算符:将字符串表达式与 SQL表达式中的模式进行比较匹配. 语法 :expression Like 'pattern' ,expression为匹配字段,pattern为匹配字符串.可以通过 Like 运算符来查找与所指定的模式相匹配的字段值.对于 pattern,可以指定完整的值(例如 Like "Smith"),也可以使用通配符来查找某个范围内的值(例如 Like "Sm*"). 下表展示了如何通过 Like 来测试不同模式的表达式. 匹配类型 模

C# 之 日常积累(二)

主要涉及(1)数字前补0:(2)去掉decimal类型后边无效的0相关问题. 1.数字前补0 int number=258; if(number>1000) { returnnumber.ToString(); } else { returnnumber.ToString().PadLeft(4,'0'); // 一共4位,位数不够时从左边开始用0补 } 2.去掉decimal类型后边无效的0: (1)deciaml.ToString().TrimEnd('0').TrimEnd('.') (2

Android 开发中的日常积累

欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存优化之OOM Android最佳性能实践(1):合理管理内存 Android最佳性能实践(2):分析内存的使用情况 Android最佳性能实践(3):高性能编码优化 Android最佳性能实践(4):布局优化技巧 Android 加固与反编译 Apktool dex2jar DecompileApk

日常积累oracle 有关信息

对于VARCHAR2类型,我们在内存使用和效率上需要做出一个权衡.对于VARCHAR2(长度>=2000)变量,PL/SQL动态分配内存来存放实际值,但对于VARCHAR2(长度<2000)变量,PL/SQL会预先分配足够的内存.所以,如果我们把同样一个500字节的值放入一个VARCHAR2(2000)和一个VARCHAR2(1999)变量中,后者会多占用1499个字节的内存. exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:  select name from stud

[转] SQL性能调优日常积累

http://www.cnblogs.com/llrr/p/6655977.html (1)选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

sqlserver日常维护脚本

SQL code --备份declare @sql varchar(8000) set @sql='backup database mis to disk=''d:\databack\mis\mis'+rtrim(convert(varchar,getdate(),112))+'.bak''' exec(@sql) --删除15天前备份文件 set @sql='del d:\databack\mis\mis' +rtrim(convert(varchar,getdate()-15,112))+'

SQL 性能调优日常积累【转】

阅读目录 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效) (2)WHERE子句中的连接顺序 (3)SELECT子句中避免使用 ‘ * ‘ (4)减少访问数据库的次数 (5)在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200 (6)使用DECODE函数来减少处理时间 (7) 整合简单,无关联的数据库访问 (8) 删除重复记录 (9) 用TRUNCATE替代DELETE (10)尽量多使用COMM

Jquery 之 日常积累(一)

1.jquery函数在参数中传递 this,正确的写法: //页面中用 GetString(this); //脚本中定义 function GetString(obj){ var str = $(obj).html(); alert(str); } 2.jquery 获取元素属性 //获取元素属性 $("#div").attr("class"); $("#div").prop("class"); //设置元素属性 $(&quo

(转)Oracle 知识日常积累

Oracle中row_number().rank().dense_rank() 的区别:https://www.cnblogs.com/qiuting/p/7880500.html oracle sign函数解决大于小于的decode写法:https://blog.csdn.net/gahaya/article/details/8193026 如何用Pivot实现行列转换:https://www.cnblogs.com/ivictor/p/4664011.html ORACLE统计分析函数:ht