create table TableX(Code varchar(10), Name varchar(50), Age varchar(10));
d
select * from TableX where Name like '张%' order by Age asc;
select * from TableX, TableY where xCode=yCode and Class='计算机' and score<60;
select TableX.Name,TableY.Class,TableY.Score from TableX,TableY where xCode=yCode;
insert into TableX (xCode,Name,Age) values(‘97005’,‘赵六’,‘20’);
update TableX set Age=21 where xCode='97004';
delete from TableX where xCode not in(select xCode from TableY);
2. sql实例运用
删除 delete from 书籍 where id(select id from 书籍)
select Id,Title,Author,PublisherId,UnitPrice from 书籍 group by Id,Title,Author,PublisherId,UnitPrice
3. SQL server跨实例查询
select d.lb as 类别,a.hh as 货号,d.pm as 品名,d.bm as 别名,a.kh as 位置,d.cd as 产地,d.gg as 规格, d.pdw as 剂型,b.sssl as 进货量,c.sl as 总销量,a.sjsl as 当前库存, d.cgry as 采购员,d.sx as 属性,d.jj as 进价,d.lsj as 零售价,isnull(f.sj,0) as 会员价
from ywbalance a
left join (select hh,sum(sssl) as sssl from rkdzk where (kdrq between '2009-4-1' and '2009-6-30') group by hh)
b on a.hh=b.hh
left join (select hh,sum(sl) as sl from fhdzk where (kdrq between '2009-4-1' and '2009-6-30') group by hh)
c on a.hh=c.hh
left join openrowset('sqloledb','192.168.0.100';'sa';'111','select * from knss2009.dbo.yw_kck')
d on a.hh=d.hh left join openrowset('sqloledb','192.168.0.100';'sa';'111','select * from knss2009.dbo.GLMemberPrice') f on a.hh=f.hh
where (b.sssl>0 or c.sl>0) and fperiod='0' order by a.hh
这是我在公司用到的,我用的是openrowse函数,我感觉这个不错,代码有点多,不过原理很简单
4. 如何创建跨数据库实例的视图
步骤如下:
打开SQL Server可视化编辑视图,进入数据库
进入视图菜单,右键点击顶层文件夹,新建视图,不要做任何选择操作
在下面输入SQL语句,格式如下:
- 鼠标再点一下上面菜单,就会出现对应的跨库数据表。
- 把他做一个视图,存储在本数据库,就可以I做跨库数据分析了。
5. SqlServer如何跨实例访问数据库
在我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instance02中的数据。例如在做数据迁移时,如下语句:
insert into Instance01.DB01.dbo.Table01
select * from Instance02.DB01.dbo.Table01
普通情况下,这样做是不允许的,因为SQL Server默认不可以跨实例访问数据。解决方案是使用存储过程sp_addlinkedserver进行实例注册。
sp_addlinkedserver在MSDN中的定义为:
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproct= ] 'proct_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
例如:在Instance01实例中,执行如下SQL语句
EXEC sp_addlinkedserver ‘Instance02’ //只写第一个参数即可,默认情况下,注册的是SQL Server数据库,其他参数用法详见MSDN。
如果你的两个实例在同一个域中,且Instance01与Instance02有共同的域登陆帐号,那么经过上面的注册后,前面的insert语句就可以执行了。否则,还需要对注册的远程实例进行登陆帐号注册,在Instance01实例中,执行如下SQL语句
EXEC sp_addlinkedsrvlogin 'InstanceName','true' //使用集成认证访问远程实例
或者 EXEC sp_addlinkedsrvlogin 'InstanceName','false','TJVictor,'sa','Password1' //使用Windows认证访问远程实例,当用户以TJVictor用户登陆Instance01实例访问Instance02时,默认把TJVictor映射成sa,且密码为Password1
经过 sp_addlinkedserver实例注册和sp_addlinkedsrvlogin登陆帐户注册后,就可以在Instance01中直接访问Instance02中的数据库数据了。
如果还无法访问,请检查本机DNS是否可以解析远程数据库的实例名。如果无法解析,可以在EXEC sp_addlinkedserver ‘Instance02’中把Instance02换为IP,或者在hosts文件中,自己建立相应DNS映射。
6. 怎样把一个完整的数据库从一个实例转到另一个实例上 sql server 2008
先将本机的sqlexpress的数据库备份到本地,本分文件后缀是【.BAK】。然后将备份文件
复制到mssqlserver的电脑上。附加就可以了。这里有图片:
http://tech.163.com/07/0123/16/35HKHORT0009158J.html
一、通过企业管理器进行单个数据库备份。打开SQL SERVER 企业管理器,展开SQL SERVER组LOCAL下的数据库,右键点击你要备份的数据库,在弹出的菜单中选择所有任务下的备份数据库,弹出备份数据库对话框:
点击添加按钮,填写备份文件的路径和文件名,点击确定添加备份文件,点击备份对话框上的备份,开始进行备份。
二、还原数据库备份文件。在企业管理器中对数据库节点右键单击,选择所有任务下的附加数据库,弹出附加数据库对话框。如下图:
选择一个你之前拷贝的数据文件,然后点击确定即可附加成功(注:如果数据库已经存在,请删除数据库后在对其进行附加)。参考资料:http://tech.163.com/07/0123/16/35HKHORT0009158J.html