1.用bcp導出txt數據
DECLARE @bcp VARCHAR(100), @date VARCHAR(10) BEGIN SET @date = REPLACE(CONVERT(VARCHAR, GETDATE() - 2, 111), '/', '-'); SET @bcp = 'bcp WebStat.dbo.[PV_HIS_' + @date + '] out \pvtxt\PV_HIS_' + @date + '.txt -c -T'; --PRINT @bcp; -- 執行bcp命令 EXEC xp_cmdshell @bcp; END;
2.動態執行sql
declare @sql varchar(4000) set @sql='select name' select @sql=@sql+',isnull(sum(case subject when '''+subject+''' then result end),0)['+subject+']' from (select distinct subject from CJ) as a select @sql=@sql+' from CJ group by Name' print @sql -- 打印 declare @test varchar(300) set @test = 'select getdate()' print @test exec(@test) --執行sql語句
3. 系統sql語句
--0.查詢數據庫中所有對象 select * from yourdb.sys.all_objects --查詢數據庫中所有的表 select * from yourdb.sys.tables select * from yourdb.sys.databases
--1 查詢所有的數據庫名稱
select Name FROM Master.dbo.SysDatabases order BY Name
--2 獲取所有表名
--XType='U':表示所有用戶表;
--XType='S':表示所有系統表;
select name from sysobjects where xtype='U' order by name
--注意:一般情況只需要type = 'U',但有時候會有系統表混在其中
--不知道什么原因,加上后面一句后就能刪除這些系統表了
SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'
select * from sysobjects where [type]='u' and xtype='u';
select * from systypes where xusertype=56
--3 獲取所有字段名:
select name from syscolumns where id=OBJECT_ID('city') –表或視圖名
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length
FROM syscolumns, systypes
WHERE syscolumns.xusertype = systypes.xusertype
AND syscolumns.id = object_id('tableName')
4.常用DDL語句
--創建數據庫 Create database Users --創建表,添加主、外鍵 Create table T_Students( Id int IDENTITY(1,1) NOT NUL, StudentNo char(4), CourseNo char(4), Score int, Primary key(Id), Foreign key(CourseNo) References T_Course(CourseNo) ); --修改表結構,添加字段 Alter table T_Person add NickName nvarchar(50) null; --修改表結構,刪除字段 Alter table T_Person Drop column NickName; --刪除數據表 Drop table T_Person; --創建索引 Create [Unique] Index <索引名> on <基本表名>(<列明序列>);
1、group by 功能:分組統計 2、having子句,功能:指定組合或者聚合的搜索條件,通常與group by子句一起使用,完成分組查詢后在進行篩選 3、聯合查詢 union: 功能:將兩個以上的查詢結果集組合成一個單個的結果集,該集中包括所有集中的全部行數據 4、連接查詢,功能:將多個表中的數據查詢出來放在一起 1)內連接:使用 = < > 等進行表間某些數據庫的比較操作,並列出這些表中與連接條件相匹配的數據行 如:select * from TableA inner join TableB where A.aid = B.aid 2)自然連接:指明要查詢的列,並排序 3)外連接:與內連接不同的是,內連接至少要有一個同屬於兩個表的行符合連接條件時才會返回行, 外連接會返回符合任意條件的行,它的表有主從之分,用主表中的每行去匹配從表中的行, 與內連接不同的是,外連接不會丟棄沒有匹配的行,而是填充null給結果集。 5、創建一個表的SQL語句 create table tempTable( id int priamry key identity(1,1) not null, fieldA nvarchar(20), FK_ID int references OtherTable(id) ) 6、子查詢:一個sql語句中嵌套另一個sql語句就叫嵌套查詢,而被嵌入的這個語句就叫做子查詢。 子查詢也稱內部查詢,而包含子查詢的select語句被稱為外部查詢,子查詢自身可以包含一個或多個子查詢,也可以嵌套任意數量的子查詢。 7、創建視圖:視圖就是一個虛表 create View view.tempView select app.AppManageID,app.CompanyName, app.Passport, app.WebURL, app.ShopType,app.CreateTime from AppManage as app inner join PackageInfo as p on app.AppManageID=p.AppManageID
4.表復制
方法1:語句形式為:SELECT vale1, value2 into Table2 from Table1
Table2可以不存在。
方法2:語句形式為:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
Table2必須存在。
update 2014-10-10 21:13:25
可以直接用語句查 select char(9) ,char(10), char(13)
查出來全是空白~
那就查ASCII表吧~
char(9) 水平制表符
char(10)換行鍵
char(13)回車鍵
char(9) :tab
char(10) :換行
char(13):回車
一般char(10)char(13)連着用,表示0x0A0x0D,即一個完整的回車換行。
--1. --前期准備 DUMP TRANSACTION webstat WITH NO_LOG bACKUP LOG webstat WITH TRUNCATE_ONLY --2. webstat :文件名稱 ——收縮數據庫 DBCC SHRINKFILE(N'webstat',916000) --3. ——查看收縮進度 use master go select * from sysprocesses --cmd='DbccFilesCompact' (查session_id ) SELECT session_id,percent_complete FROM sys.dm_exec_requests t WHERE session_id=59 go DUMP TRANSACTION webstat WITH NO_LOG bACKUP LOG webstat WITH TRUNCATE_ONLY DBCC SHRINKFILE(N'web',916000) use master go SELECT session_id,percent_complete FROM sys.dm_exec_requests t WHERE session_id=53 select * from sysprocesses
CREATE procedure [dbo].[pr_state] as begin DECLARE @SQLString NVARCHAR(500) DECLARE @datetime NVARCHAR(20) set @datetime =CONVERT(varchar(10), getdate()-1 ,120); SET @SQLString =N' insert into PV_HIS_JifenWall_Report(recorddate,type,count,usercount) select '''+@datetime+''' , PageQueryString,count(1) cnt,count(distinct UserAccount) cntuseraccount from [dbo].[PV_HIS_'+ @datetime+ '] a with(nolock) where PageQueryString in (''CPAList'',''CPADownload'',''CPAInstall'',''CPAOpen'') group by PageQueryString' --print @SQLString EXEC sp_executesql @SQLString end