Time of Update: 2017-01-18
有時候需要一次性將SQL Server中的資料匯出給其他部門的也許進行關聯或分析,這種需求對於SSIS來說當然是非常簡單,但很多時候僅僅需要一次性匯出這些資料而建立一個SSIS包就顯得小題大做,而SQL Server的匯入匯出工具其中BUG還是蠻多的,最簡單的辦法是BCP。 資料匯出為XML 在SQL Server 2005之後提供了一個for
Time of Update: 2017-01-18
在SQL Server中Count(*)或者Count(1)或者Count([列])或許是最常用的彙總函式。很多人其實對這三者之間是區分不清的。本文會闡述這三者的作用,關係以及背後的原理。 往常我經常會看到一些所謂的最佳化建議不使用Count(* )而是使用Count(1),從而可以提升效能,給出的理由是Count( *)會帶來全表掃描。而實際上如何寫Count並沒有區別。 Count(
Time of Update: 2017-01-18
我們都知道用彙總函式count()可以統計表的行數。如果需要統計資料庫每個表各自的行數(DBA可能有這種需求),用count()函數就必須為每個表產生一個動態SQL語句並執行,才能得到結果。以前在互連網上看到有一種很好的解決方案,忘記出處了,寫下來分享一下。該方法利用了sysindexes 系統資料表提供的rows欄位。rows欄位記錄了索引的資料級的行數。解決方案的代碼如下:複製代碼 代碼如下:select schema_name(t.schema_id) as [Schema],
Time of Update: 2017-01-18
1.什麼是事務:事務是一個不可分割的工作邏輯單元,在資料庫系統上執行並行作業時事務是做為最小的控制單元來使用的。 他包含的所有資料庫操作命令作為一個整體一起向系提交或撤消,這一組資料庫操作命令要麼都執行,要麼都不執行。 事務是一個不可分割的工作邏輯單元2.事務的分類. 按事務的啟動與執行方式,可以將事務分為3類: ①顯示事務
Time of Update: 2017-01-18
一):視圖的定義視圖是由基於一個或多個表的一個查詢所定義的虛擬表,它將查詢的具體定義儲存起來,視圖不包含任何資料。視圖在操作上和資料表沒有什麼區別,但兩者的差異是在其本質上的。資料表是實際儲存記錄的地方,然而視圖並不是儲存任何記錄,它儲存的實際上是查詢語句。相同的資料表,根據不同使用者的不同需求,可以建立不同的視圖。二):視圖的作用1):篩選表中的行2):防止未經許可的使用者訪問敏感性資料3):降低資料庫的複雜程度4):將多個物理資料抽象為一個邏輯資料庫三):建立視圖執行個體複製代碼 代碼如下:
Time of Update: 2017-01-18
什麼是預存程序如果你接觸過其他的程式設計語言,那麼就好理解了,預存程序就像是方法一樣。竟然他是方法那麼他就有類似的方法名,方法要傳遞的變數和返回結果,所以預存程序有預存程序名有預存程序參數也有傳回值。預存程序的優點: 預存程序的能力大大增強了SQL語言的功能和靈活性。1.可保證資料的安全性和完整性。2.通過預存程序可以使沒有許可權的使用者在控制之下間接地存取資料庫,從而保證資料的安全。3.通過預存程序可以使相關的動作在一起發生,從而可以維護資料庫的完整性。4.在
Time of Update: 2017-01-18
SQL Server2012 如何建立定時作業?有興趣的可以來看下,圖文並茂哦!1、首先我們開啟SQL Server代理,裡面選擇作業2、右鍵作業,選擇新增作業3、填寫一些相應的內容,名稱和說明自填即可。 ***需要注意的是 已啟用這個勾要勾選上。 類別我們這裡預設即可,按照你的需求可以變更。4、選擇步驟 ,點擊建立5、填寫步驟名稱和所啟動並執行資料庫***需要注意的是 命令列就是執行你的預存程序 直接寫 exec …. 即可點擊 分析
Time of Update: 2017-01-18
問題現象:系統記錄檔(控制台–管理工具–系統日誌)能找到以下兩條錯誤:17052:無法恢複 master 資料庫。正在退出。18052:錯誤: 9003,嚴重度: 20,狀態: 1。解決方案一:將Microsoft SQL Server/MSSQL/Data 目錄改名為data_bak目錄,然後從其他機器上把master.mdf,master.ldf,model.mdf,modellog.ldf拷過來隨便放到哪(或者直接把data目錄拷過來也行),不能放到Microsoft SQL
Time of Update: 2017-01-18
在與 SQL Server 建立串連時出現與網路相關的或特定於執行個體的錯誤。未找到或無法訪問伺服器。請驗證執行個體名稱是否正確並且 SQL Server 已配置為允許遠端連線。在使用G2服務時,測試伺服器串連,結果遇到這個問題。 問題詳細:串連測試失敗!:在與 SQL Server 建立串連時出現與網路相關的或特定於執行個體的錯誤。未找到或無法訪問伺服器。請驗證執行個體名稱是否正確並且 SQL Server 已配置為允許遠端連線。 (provider: 具名管道提供者, error: 40 -
Time of Update: 2017-01-18
一般來說update一個表, 使用where語句即可:複製代碼 代碼如下:UPDATE Ttest SET statusInd = 'ACTIVE' WHERE id = 123注意:update 語句後面的table名稱,是不可以啟用別名的。那麼此時的id欄位,就是來自Ttest表的(無可厚非)但是,如果update,還有額外的join table 條件約束,語句如下:複製代碼 代碼如下:UPDATE
Time of Update: 2017-01-18
當完整備份資料庫的時候,我們有時候可能會遇到一種極端情況,比如伺服器上C,D,E三個盤符都只剩下5G空間了但是如果要完整備份業務庫需要12G的空間,那麼這時候怎麼辦呢?使用檔案組備份嗎?但是資料庫沒有做表分區,沒有分多個檔案組,就只有一個主檔案組啊這時候我們可以使用備份檔案分割我使用自己機器示範一下,我的機器上有一個Temp2的資料庫,資料庫大小為1GB備份我們做一個Temp2資料庫的完整備份複製代碼 代碼如下:DECLARE @CurrentTime VARCHAR(50),
Time of Update: 2017-01-18
當我們想讓某條查詢語句利用某個索引的時候,我們一般會在查詢語句裡加索引提示,就像這樣複製代碼 代碼如下:SELECT id,name from TB with (index(IX_xttrace_bal)) where
Time of Update: 2017-01-18
今天用執行個體總結一下group by的用法。歸納一下:group by:ALL ,Cube,RollUP,Compute,Compute by建立資料指令碼Create Table SalesInfo(Ctiy nvarchar(50),OrderDate datetime,OrderID int)insert into SalesInfoselect N'北京','2014-06-09',1001union allselect N'北京','2014-08-09',1002union
Time of Update: 2017-01-18
一 Insert 語句1.在資料中只插入預設值:insert into [DBTrain].[dbo].[log_info]default values2.在可以為null 的欄位中,如果要設定null,可以按下[Ctrl+0],注意是零不是o,如果要恢複修改前的值按[Esc]二 Update 語句可以更新前幾條或某個百分比的資料update top(3) [log_info] set info1 = '1001'update top(80) percent [log_info] set
Time of Update: 2017-01-18
在日常應用中,往往根據實際需求錄入一些值,而這些值不能直接使用,所以Sql中經常會對欄位值進行一些常規的處理。這裡搜集了(提取數字、英文、中文、過濾重複字元、分割字元的方法),方便日後查詢使用。 一、判斷欄位值是否有中文--SQL 判斷欄位值是否有中文create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@CN
Time of Update: 2017-01-18
sql server 發送html格式的郵件,參考代碼如下: DECLARE @tableHTML NVARCHAR(MAX) ; -- 擷取當前系統時間,和資料統計的時間 set @d_nowdate = convert(datetime,convert(varchar(10),dateadd(day,-1,getdate()),120),120); -- 如果有資料則發送 if exists (select top 1 * from t_table1(nolock)
Time of Update: 2017-01-18
suspect_pages 表位於 msdb 資料庫中,是在 SQL Server 2005 中引入的。用於維護有關可疑頁的資訊的 suspect_pages資料庫管理員負責管理表(主要通過刪除舊的行實現)。suspect_pages 表有大小限制,如果此表已滿,則不會記錄新的錯誤。若要防止此表填滿,資料庫管理員或系統管理員必須通過刪除行來手動清除此表中的舊條目。因此,我們建議您定期刪除或存檔 event_type 為已還原或已修複的行或具有舊 last_update 值的行。若要監視對
Time of Update: 2017-01-18
--SQL 判斷欄位值是否有中文create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@CN nvarchar(4000) set @CN='' while len(@str)>0 begin set @word=left(@str,1) if unicode(@word) between 19968
Time of Update: 2017-01-18
你是否想知道為什麼交易記錄檔會變得越來越大?交易記錄有時候甚至會比你的實際資料庫檔案還要大,尤其是在應用資料倉儲的情況下。為什麼會發生這種情況呢?如何控制其大小?資料庫恢複模型如何控制交易記錄增長?在本系列文章中,我們就將一一給出解答。批量日誌復原模式批量日誌復原模式與完整復原模式類似,都預期會有大批量的資料修改操作(例如,建立索引,SELECT INTO,INSERT
Time of Update: 2017-01-18
需求是這樣的,我在.net程式裡操作資料時將一些欄位資料加密了,這些資料是很多系統共用的,其中一delphi程式也需要用到,並且需要將資料解密,由於我在.net裡加密的方式比較特殊,在delphi程式裡解密比較繁瑣且要消耗很多時間,所以不得不讓sqlserver調用程式集的方式來解決問題。下面只是一個例子,貼出來共用。建立一個dll,class,代碼如下:複製代碼 代碼如下:namespace MyDll{ public partial class