您好,登錄后才能下訂單哦!
1.sp_helptext是顯示規則、默認值、未加密的存儲過程、用戶定義函數、觸發器或視圖的文本。
2.SQL 查詢某字段數據所在的表
select a.name as 表名 from sysobjects as a left join syscolumns as b on a.id=b.id where b.name='字段名'
1>根據已知字段查詢表:
select a.name from sysobjects a join syscolumns b on a.id=b.id where b.name='字段名'
2>查詢符合此字段值的記錄:
select * from 表名 where 字段名=字段值 (表名是步驟一查詢出來的名稱)
3.獲取當前數據庫中的所有用戶表
select Name from sysobjects where xtype='u' and status>=0
4.列出數據庫里所有的表名
select name from sysobjects where type='U'
5.獲取某一個表的所有字段
select name from syscolumns where id=object_id('表名')
select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名')
兩種方式的效果相同
6.查詢某一個表的字段和數據類型
select column_name,data_type from information_schema.columns
where table_name = '表名'
7.取回表中字段:
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)
8.查看與某一個表相關的視圖、存儲過程、函數
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
9.查看當前數據庫中所有視圖
select name as 視圖 from sysobjects where xtype='V'
10.查看當前數據庫中所有存儲過程
select name as 存儲過程名稱 from sysobjects where xtype='P'
11.查詢用戶創建的所有數據庫
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
12.1=1,1=2的使用,在SQL語句組合時用的較多
“where 1=1” 是表示選擇全部 “where 1=2”全部不選,
如:
if @strWhere !=''
begin
set @strSQL = 'select count() as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count() as Total from [' + @tblName + ']'
end
我們可以直接寫成
錯誤!未找到目錄項。
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
13.包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復行而派生出一個結果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
14.刪除重復記錄
1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
2),select distinct into temp from tablename
delete from tablename
insert into tablename select from temp
評價: 這種操作牽連大量的數據的移動,這種做法不適合大容量但數據操作
3),例如:在一個外部表中導入數據,由于某些原因第一次只導入了一部分,但很難判斷具體位置,這樣只有在下一次全部導入,這樣也就產生好多重復的字段,怎樣刪除重復字段
alter table tablename
--添加一個自增列
add column_b int identity(1,1)
delete from tablename where column_b not in(
select max(column_b) from tablename group by column1,column2,...)
alter table tablename drop column column_b
15.SQL兩表之間:根據一個表的字段更新另一個表的字段
update table1
set field1=table2.field1,
field2=table2.field2
from table2
where table1.id=table2.id
update table1
set field1=(select top 1 field1 from table2 where table2.id=table1.id)
where table1.id in (condition)
16.比較A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A)
(select checksum_agg(binary_checksum(*)) from B)
print '相等'
else
print '不相等'
17.請求其空間使用信息的表、索引視圖或隊列的限定或非限定名稱
exec sp_spaceused 'tablename'
18.查看硬盤分區:
EXEC master..xp_fixeddrives
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。