黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

經(jīng)典SQL語(yǔ)句大全之?dāng)?shù)據(jù)開(kāi)發(fā)

系統(tǒng) 2262 0

數(shù)據(jù)開(kāi)發(fā)

1.按姓氏筆畫排序:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //從少到多

?

2.數(shù)據(jù)庫(kù)加密:
select encrypt('原始密碼')
select pwdencrypt('原始密碼')
select pwdcompare('原始密碼','加密后密碼') = 1--相同;否則不相同?encrypt('原始密碼')
select pwdencrypt('原始密碼')
select pwdcompare('原始密碼','加密后密碼') = 1--相同;否則不相同

?

3.取回表中字段:
declare @list varchar(1000),
@sql nvarchar(1000)?
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
set @sql='select '+right(@list,len(@list)-1)+' from?表A'?
exec (@sql)

?

4.查看硬盤分區(qū):
EXEC master..xp_fixeddrives

?

5.比較A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A)
???? =
??? (select checksum_agg(binary_checksum(*)) from B)
print '相等'
else
print '不相等'

?

6.殺掉所有的事件探察器進(jìn)程:
DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL?事件探查器')
EXEC sp_msforeach_worker '?'

?

7.記錄搜索:
開(kāi)頭到N條記錄
Select Top N * From?表
-------------------------------
N到M條記錄(要有主索引ID)
Select Top M-N * From?表?Where ID in (Select Top M ID From?表) Order by ID?? Desc
----------------------------------
N到結(jié)尾記錄
Select Top N * From?表?Order by ID Desc
案例
例如1:一張表有一萬(wàn)多條記錄,表的第一個(gè)字段?RecID?是自增長(zhǎng)字段, 寫一個(gè)SQL語(yǔ)句, 找出表的第31到第40個(gè)記錄。

?select top 10 recid from A where recid not??in(select top 30 recid from A)

分析:如果這樣寫會(huì)產(chǎn)生某些問(wèn)題,如果recid在表中存在邏輯索引。

????select top 10 recid from A where……是從索引中查找,而后面的select top 30 recid from A則在數(shù)據(jù)表中查找,這樣由于索引中的順序有可能和數(shù)據(jù)表中的不一致,這樣就導(dǎo)致查詢到的不是本來(lái)的欲得到的數(shù)據(jù)。

解決方案

1,用order by?select top 30 recid from A order by ricid?如果該字段不是自增長(zhǎng),就會(huì)出現(xiàn)問(wèn)題

2,在那個(gè)子查詢中也加條件:select top 30 recid from A where recid>-1

例2:查詢表中的最后以條記錄,并不知道這個(gè)表共有多少數(shù)據(jù),以及表結(jié)構(gòu)。
set?@s?=?'select top 1 * from T???where pid not in (select top '?+?str(@count-1) +?' pid??from??T)'

print?@s??????exec??sp_executesql??@s

?

9:獲取當(dāng)前數(shù)據(jù)庫(kù)中的所有用戶表
select Name from sysobjects where xtype='u' and status>=0

?

10:獲取某一個(gè)表的所有字段
select name from?syscolumns?where id=object_id('表名')

select name from?syscolumns?where id in (select id from?sysobjects?where type = 'u' and name = '表名')

兩種方式的效果相同

?

11:查看與某一個(gè)表相關(guān)的視圖、存儲(chǔ)過(guò)程、函數(shù)
select a.* from?sysobjects?a,?syscomments?b where a.id = b.id and b.text like '%表名%'

?

12:查看當(dāng)前數(shù)據(jù)庫(kù)中所有存儲(chǔ)過(guò)程
select name as?存儲(chǔ)過(guò)程名稱?from?sysobjects?where xtype='P'

?

13:查詢用戶創(chuàng)建的所有數(shù)據(jù)庫(kù)
select * from master..sysdatabases?D where sid not in(select sid from master..syslogins?where name='sa')
或者
select dbid, name AS DB_NAME from master..sysdatabases?where sid <> 0x01

?

14:查詢某一個(gè)表的字段和數(shù)據(jù)類型
select column_name,data_type from information_schema.columns
where table_name = '表名'

?

15:不同服務(wù)器數(shù)據(jù)庫(kù)之間的數(shù)據(jù)操作

--創(chuàng)建鏈接服務(wù)器

exec sp_addlinkedserver???'ITSV ', ' ', 'SQLOLEDB ', '遠(yuǎn)程服務(wù)器名或ip地址?'

exec sp_addlinkedsrvlogin??'ITSV ', 'false ',null, '用戶名?', '密碼?'

--查詢示例

select * from ITSV.數(shù)據(jù)庫(kù)名.dbo.表名

--導(dǎo)入示例

select * into?表?from ITSV.數(shù)據(jù)庫(kù)名.dbo.表名

--以后不再使用時(shí)刪除鏈接服務(wù)器

exec sp_dropserver??'ITSV ', 'droplogins '

?

--連接遠(yuǎn)程/局域網(wǎng)數(shù)據(jù)(openrowset/openquery/opendatasource)

--1、openrowset

--查詢示例

select * from openrowset( 'SQLOLEDB ', 'sql服務(wù)器名?'; '用戶名?'; '密碼?',數(shù)據(jù)庫(kù)名.dbo.表名)

--生成本地表

select * into?表?from openrowset( 'SQLOLEDB ', 'sql服務(wù)器名?'; '用戶名?'; '密碼?',數(shù)據(jù)庫(kù)名.dbo.表名)

?

--把本地表導(dǎo)入遠(yuǎn)程表

insert openrowset( 'SQLOLEDB ', 'sql服務(wù)器名?'; '用戶名?'; '密碼?',數(shù)據(jù)庫(kù)名.dbo.表名)

select *from?本地表

--更新本地表

update b

set b.列A=a.列A

?from openrowset( 'SQLOLEDB ', 'sql服務(wù)器名?'; '用戶名?'; '密碼?',數(shù)據(jù)庫(kù)名.dbo.表名)as a inner join?本地表?b

on a.column1=b.column1

--openquery用法需要?jiǎng)?chuàng)建一個(gè)連接

--首先創(chuàng)建一個(gè)連接創(chuàng)建鏈接服務(wù)器

exec sp_addlinkedserver???'ITSV ', ' ', 'SQLOLEDB ', '遠(yuǎn)程服務(wù)器名或ip地址?'

--查詢

select *

FROM openquery(ITSV,??'SELECT *??FROM?數(shù)據(jù)庫(kù).dbo.表名?')

--把本地表導(dǎo)入遠(yuǎn)程表

insert openquery(ITSV,??'SELECT *??FROM?數(shù)據(jù)庫(kù).dbo.表名?')

select * from?本地表

--更新本地表

update b

set b.列B=a.列B

FROM openquery(ITSV,??'SELECT * FROM?數(shù)據(jù)庫(kù).dbo.表名?') as a?

inner join?本地表?b on a.列A=b.列A

?

--3、opendatasource/openrowset

SELECT???*

FROM???opendatasource( 'SQLOLEDB ',??'Data Source=ip/ServerName;User ID=登陸名;Password=密碼?' ).test.dbo.roy_ta

--把本地表導(dǎo)入遠(yuǎn)程表

insert opendatasource( 'SQLOLEDB ',??'Data Source=ip/ServerName;User ID=登陸名;Password=密碼?').數(shù)據(jù)庫(kù).dbo.表名

select * from?本地表?

?

原文地址:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html

?

經(jīng)典SQL語(yǔ)句大全之?dāng)?shù)據(jù)開(kāi)發(fā)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論