亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

t-sql 筆記(1)

2024-07-21 02:48:48
字體:
來源:轉載
供稿:網友
t-sql 筆記(1)1.查詢哪些數據庫對象使用了某個表
SELECT b.[name], a.[definition]FROM sys.all_sql_modules a, sysobjects bWHERE a.[object_id] = id AND definition LIKE '%表名%'
2.查詢表的某一列,將結果變成用逗號分隔的字符串
select col+',' from mytable for xml path('')
3.查詢有哪些表的表名包含“storeroom”
 select * from sysobjects obj where LOWER(obj.name) LIKE N'%storeroom%' and xtype='U'
4.分組條件求和
DECLARE @t1 TABLE ( c1   NUMERIC (12), c2   VARCHAR (30) )INSERT INTO @t1 (c1, c2) VALUES (1, 'a');INSERT INTO @t1 (c1, c2) VALUES (2, 'a');INSERT INTO @t1 (c1, c2) VALUES (3, 'b');INSERT INTO @t1 (c1, c2) VALUES (4, 'b');SELECT CASE WHEN max (c1) > 3 THEN sum (c1) ELSE 0 END AS c  FROM @t1GROUP BY c2;/*結果:c07*/
5.求某一天所在星期的周日

http://www.cnblogs.com/wsdj-ITtech/archive/2011/10/06/2199736.html

USE [MSSQL]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE FUNCTION [dbo].[My_OneDay_GetWeekFirstAndEndDay](@tmpDate DATETIME)RETURNS  @tmpTable TABLE(FirstDay DATETIME , EndDay DATETIME)ASBEGIN    INSERT INTO @tmpTable    SELECT a.FirstDay,b.EndDay FROM (            SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0) AS FirstDAy    ) a    LEFT JOIN (        SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6) AS EndDay    ) b    ON a.ID = b.ID    RETURNEND
SELECT * from  My_OneDay_GetWeekFirstAndEndDay('2010-09-01')

6.求時間段內周日的數量

http://www.cnblogs.com/wsdj-ITtech/archive/2011/10/06/2199736.html

CREATE FUNCTION [dbo].[MY_Range_GetWeekFirstAndEndDays](@tmpDateSTART DATETIME,@tmpDateEND DATETIME)RETURNS  @tmpTable TABLE(WeekOrder INT,FirstDay DATETIME , EndDay DATETIME)ASBEGIN    DECLARE   @tmpDate   DATETIME DECLARE   @index         INT SET       @tmpDate=@tmpDateSTART SET       @index=1     WHILE     @tmpDate <=@tmpDateEND        BEGIN              INSERT INTO @tmpTable                SELECT @index,a.FirstDay,b.EndDay FROM (                        SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 0) AS FirstDAy) a                LEFT JOIN (                    SELECT 1 AS ID,DATEADD(wk, DATEDIFF(wk,0,@tmpDate), 6) AS EndDay) b                ON a.ID = b.ID          SET   @tmpDate=DATEADD(DAY,7,@tmpDate)          SET   @index=@index+1         END      RETURNEND
SELECT * from  My_Range_GetWeekFirstAndEndDays('2011-09-01','2011-10-06')

不使用臨時表:

DECLARE @tmpDateSTART   DATETIMEDECLARE @tmpDateEND   DATETIMESET @tmpDateSTART = '2015-1-1'SET @tmpDateEND = '2015-1-21'DECLARE @tmpDate   DATETIMEDECLARE @days   INTSET @tmpDate = @tmpDateSTARTSET @days = 0WHILE @tmpDate <= @tmpDateENDBEGIN     DECLARE @theDate   DATETIME;   SET @theDate = DATEADD (wk, DATEDIFF (wk, 0, @tmpDate), 6);   IF @theDate > @tmpDateSTART AND @theDate < @tmpDateEND            SET @days = @days + 1     SET @tmpDate = DATEADD (DAY, 7, @tmpDate)ENDSELECT @days

7.查看正在執行的
SELECT [Spid] = session_Id,       ecid,       [Database] = DB_NAME (sp.dbid),       [User] = nt_username,       [Status] = er.status,       [Wait] = wait_type,       [Individual Query] =          SUBSTRING (             qt.text,             er.statement_start_offset / 2,               (  CASE                     WHEN er.statement_end_offset = -1                     THEN                        LEN (CONVERT (NVARCHAR (MAX), qt.text)) * 2                     ELSE                        er.statement_end_offset                  END                - er.statement_start_offset)             / 2),       [Parent Query] = qt.text,       PRogram = program_name,       Hostname,       nt_domain,       start_time,       datediff (second, start_time, getdate ())  FROM sys.dm_exec_requests er       INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid       CROSS APPLY sys.dm_exec_sql_text (er.sql_handle) AS qt WHERE session_Id > 50                                 -- Ignore system spids.                      AND session_Id NOT IN (@@SPID) -- Ignore this current statement.ORDER BY datediff (second, start_time, getdate ()) DESC
8.生成GUID

C#中用Guid.NewGuid().ToString()

Sql中用NEWID()

以上方法生成的是36位的GUID,如果需要轉換成32位,則需要替換掉其中的'-'字符。

Sql中的方法:replace(newid(), '-', '')

9.時間段統計
--將時間轉換為小時--例如8:22分轉換為9--查詢語句如下SELECT cast (          datepart (             hh,             dateadd (                mi,                  (    datediff (mi,                                 CONVERT (VARCHAR (10), getdate (), 112),                                 getdate ())                     / 60                   + 1)                * 60,                CONVERT (VARCHAR (10), getdate (), 112))) AS INT)

http://bbs.csdn.net/topics/190127317--環境declare @t table (時間 datetime,金額 int)insert @t select    '2007-1-1 10:00:23',           8 union all select    '2007-1-1 10:01:24',           4 union all select    '2007-1-1 10:05:00',           2   union all select    '2007-1-1 10:06:12',           3 union all select    '2007-1-1 10:08:00',           1 union all select    '2007-1-1 10:12:11',           5 select dateadd(mi,(datediff(mi,convert(varchar(10),時間,112),時間)/5+1)*5,convert(varchar(10),時間,112)) as 時間段,count(*) as 行數,sum(金額) as 總金額from @tgroup by dateadd(mi,(datediff(mi,convert(varchar(10),時間,112),時間)/5+1)*5,convert(varchar(10),時間,112))--結果時間段                                                    行數          總金額         ------------------------------------------------------ ----------- ----------- 2007-01-01 10:05:00.000                                2           122007-01-01 10:10:00.000                                3           62007-01-01 10:15:00.000                                1           5(所影響的行數為 3 行)
10.存儲過程,有時執行很慢

現在的解決辦法是,將存儲過程中加個空格,alter一下。

exec 存儲過程 with recompile

http://bbs.csdn.net/topics/340185343

http://my.oschina.net/HenuToater/blog/177175

http://havebb.com/b/post/produce-suddenly-slow.aspx

http://www.cnblogs.com/luckylei66/archive/2012/07/30/2615000.html

    SQL優化之存儲過程強制編譯         asp.net調用SQL后臺存儲過程時,有時突然就變得很慢,在后臺直接執行存儲過程沒問題,但在前臺調用存儲過程時就是很慢,而且在前臺調用成功后,再次調用還是一樣的慢,但更新一下存儲過程再調用就很快了。但這始終不能徹底解決問題,過段時間又會出來同樣的問題。環境(NET4.0+SQL2008R2)          解決辦法:          方法一:在可能比較耗時的語句后面加上option(recompile)          方法二:強制編譯存儲過程          SQL Server 提供三種重新編譯存儲過程的方法:          (1)、sp_recompile 系統存儲過程強制在下次運行存儲過程時進行重新編譯。           示例:exec sp_recompile 存儲過程名          (2)、創建存儲過程時在其定義中指定 WITH RECOMPILE 選項,表明 SQL Server 將不對該存儲過程計劃進行高速緩存;該存儲過程將在每次執行時都重新編譯。           示例:Create Proc 存儲過程名 WITH RECOMPILE AS 參數          (3)、在執行存儲過程時指定 WITH RECOMPILE 選項,可強制對存儲過程進行重新編譯。僅當所提供的參數不典型,或者自創建該存儲過程后數據發生顯著更改時才應使用此選項。      示例:存儲過程名 WITH RECOMPILE
查看詳細

參數探測(Parameter Sniffing)與影響計劃重用的SET選項

http://www.cnblogs.com/bigholy/archive/2011/10/18/2216489.html

SQL Server中存儲過程比直接運行SQL語句慢的原因

http://blog.csdn.net/emili/article/details/2192081

在很多的資料中都描述說SQLSERVER的存儲過程較普通的SQL語句有以下優點:1.       存儲過程只在創造時進行編譯即可,以后每次執行存儲過程都不需再重新編譯,而我們通常使用的SQL語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度。2.       經常會遇到復雜的業務邏輯和對數據庫的操作,這個時候就會用SP來封裝數據庫操作。當對數據庫進行復雜操作時(如對多個表進行 Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用??梢詷O大的提高數據 庫的使用效率,減少程序的執行時間,這一點在較大數據量的數據庫的操作中是非常重要的。在代碼上看,SQL語句和程序代碼語句的分離,可以提高程序代碼的 可讀性。3.       存儲過程可以設置參數,可以根據傳入參數的不同重復使用同一個存儲過程,從而高效的提高代碼的優化率和可讀性。4.       安全性高,可設定只有某此用戶才具有對指定存儲過程的使用權存儲過程的種類:A.       系統存儲過程:以sp_開頭,用來進行系統的各項設定.取得信息.相關管理工作,如 sp_help就是取得指定對象的相關信息。B.       擴展存儲過程 以XP_開頭,用來調用操作系統提供的功能exec master..x
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看av| 国产精品入口尤物| 亚洲精品色婷婷福利天堂| 欧美性在线观看| 色综合色综合网色综合| 88xx成人精品| 国产福利视频一区二区| 日韩**中文字幕毛片| 亚洲国产精品人人爽夜夜爽| 日本一区二区三区四区视频| 日韩欧美精品网站| 91精品久久久久久久久| 国产精品一区二区久久久久| 91国在线精品国内播放| 97国产成人精品视频| 国产精品一区二区性色av| 日韩av电影手机在线观看| 亚洲天堂影视av| 欧美亚洲激情在线| 亚洲综合国产精品| 夜夜嗨av一区二区三区免费区| 久久久亚洲天堂| 992tv成人免费视频| 亚洲国产一区二区三区在线观看| 精品美女永久免费视频| 69久久夜色精品国产69乱青草| 欧美一级在线播放| 亚洲小视频在线观看| 欧洲亚洲免费在线| 亚洲日韩欧美视频| 国产精品久久久久久久久久久不卡| 91tv亚洲精品香蕉国产一区7ujn| 国产成人黄色av| 国产小视频国产精品| 中文字幕日韩电影| 日本免费一区二区三区视频观看| 亚洲摸下面视频| 亚洲午夜未删减在线观看| 久久精品中文字幕| 久久国产加勒比精品无码| www.亚洲男人天堂| 国产精品自产拍在线观看| 97色在线观看免费视频| 91精品国产免费久久久久久| 日日狠狠久久偷偷四色综合免费| 激情久久av一区av二区av三区| 精品久久久91| 日本在线精品视频| 欧美视频专区一二在线观看| 日韩女优人人人人射在线视频| 日韩av成人在线| 97婷婷大伊香蕉精品视频| 欧美亚洲国产成人精品| 国外成人在线播放| 久久6精品影院| 国产69精品久久久久久| 国产精品a久久久久久| 久久久久久这里只有精品| 国产精品久久久久久久久久ktv| 国产亚洲欧洲在线| 在线视频日本亚洲性| 国产精品一区二区三区在线播放| 国产免费久久av| 成人免费网站在线观看| 中文字幕精品久久| 色综合男人天堂| 亚洲桃花岛网站| 91色视频在线观看| 国产精品私拍pans大尺度在线| 欧美精品在线第一页| 欧美丰满老妇厨房牲生活| 亚洲新中文字幕| 欧美精品一二区| 欧美专区第一页| 福利视频一区二区| 亚洲天堂免费在线| 黄色成人在线免费| 不卡毛片在线看| 欧美精品手机在线| 国产精品久久久久久搜索| 亚洲网站在线看| 亚洲欧美另类自拍| 国语自产精品视频在线看抢先版图片| 精品国产91久久久| 一区二区亚洲精品国产| 色综合视频网站| 久久精品国产亚洲精品| 欧美高清性猛交| 国产精品一区二区久久久久| 国产亚洲aⅴaaaaaa毛片| 久久精品视频网站| 欧美精品videosex极品1| 欧美成人免费在线观看| 亚洲天堂影视av| 欧美日韩在线免费| 亚洲一区二区三区成人在线视频精品| 亚洲va欧美va在线观看| 国产精品久在线观看| 国产日韩欧美在线视频观看| 久久久久久18| 国产精品永久免费观看| 亚洲综合在线小说| 国产精品久久久久久五月尺| 日韩黄在线观看| 69**夜色精品国产69乱| 69久久夜色精品国产69乱青草| 欧美成人免费大片| 麻豆精品精华液| 日韩成人在线电影网| 久久久成人av| 亚洲精品国产精品久久清纯直播| 日韩经典中文字幕在线观看| 精品国偷自产在线视频| 91精品国产91久久久久久久久| 亚洲国产高清自拍| 国产精品专区h在线观看| 欧美综合国产精品久久丁香| 日韩在线观看电影| 91爱爱小视频k| 亚洲视频免费一区| 456亚洲影院| 欧美成人中文字幕在线| 日韩在线资源网| 国产日韩在线视频| 欧美伊久线香蕉线新在线| 国产精品视频网| 日韩欧美成人网| 日韩欧美在线中文字幕| 欧美大肥婆大肥bbbbb| 伊人久久大香线蕉av一区二区| 97视频在线观看免费| 亚洲精品自拍视频| 欧美精品18videos性欧美| 成人亲热视频网站| 欧美激情一区二区三区高清视频| 一本久久综合亚洲鲁鲁| 欧美成人免费全部观看天天性色| 欧美日本在线视频中文字字幕| 成人福利视频在线观看| 欧美在线视频网| 亚洲成人黄色在线观看| 日韩欧美国产黄色| 日韩精品在线观看视频| 欧美大片在线看免费观看| 日韩av一卡二卡| 国产精彩精品视频| 亚洲va欧美va在线观看| 亚洲国产欧美一区| 欧美国产日韩中文字幕在线| 欧美疯狂性受xxxxx另类| 国产成人精品av在线| 欧美极品少妇xxxxⅹ免费视频| 国产成人精品电影| 亚洲精品乱码久久久久久金桔影视| 久久久久久久一区二区| 亚洲成人久久一区| 操日韩av在线电影| 亚洲欧美综合另类中字| 色噜噜亚洲精品中文字幕| 亚洲免费精彩视频| 91精品国产综合久久久久久蜜臀| 波霸ol色综合久久| 午夜精品久久久久久久久久久久| 欧美性生交xxxxxdddd|