目前分類:SQL SERVER (479)

瀏覽方式: 標題列表 簡短摘要
查看週邊配置情況
SELECT * FROM sys.configurations ORDER BY name ;
GO

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

--取得當前日期
select getdate()
--取得秒

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

在SQL Server 2012中已經將CLR開發整合至新的開發平臺(SQL Server Data Tool),各位可以到以下網址下載,有同時提供整合Visual Studio 2010以及2012的版本。

 

HTTP://msdn.microsoft.com/zh-tw/data/tools.aspx

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

以下語法在SQL2005和2008均能正常執行。



shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

需求:取得來源資料表col2欄位並依col1條件逐筆更新目的資料表c2欄位(@desttbl)
declare
@step int,

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

重裝系統後發現SqlServer2008R2使用Windows身份驗證不能進行連接,如下圖:

1IR3I38-0  

以前經常會碰到SqlServer 身份驗證連接失敗,Windows身份驗證的連接失敗還是第一次,試了下SqlServer 身份驗證可以正常連接,sa帳號連接進去後,在安全性-》登錄名下沒有發現當前登錄使用者的帳號,在登錄名上點擊郵件,新建登錄名即可:

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

安裝SqlServer2008R2遇到系統提示:
SQL Server setup media does not support the language of the OS or does not have ENU localized files.
Use the matching language-specific SQL Server media or change the OS locale through Control Panle.

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

第一種解決方案:

 

在學校的時候 遇到這種問題的解決辦法是:

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

首先做幾個名詞的說明:
執行計劃(Plan):sql 編譯後的代碼段,並不是二進制代碼,而是針對SQL的執行代碼,叫做plan。一個過程可能由於参數和分支執行不同,sql會編譯成多個plan。
Perfmon:Server系統提供的performancemonitor,性能分析工具

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

SQL Server 2008支持四種協議,Shared Memory;TCP/IP;Named Pipes和Virtual Interface Adapter(VIA)。代開SQL Server配置管理器之後,會顯示一個配置SQL Server服務,SQL Server網络協議和SQL Native Client協議的節點。可以通過展開SQL Server 2008網络配置節點進行服務器協議的配置。

  Shared Memory:Shared Meory協議只能由本地連接使用,因为它是一個用於服務器內部通信的由進程共享內存的空間。在SQL Server上本地運行的應用程序或任務可以利用Shared Memroy協議

  Named Pipes:Named Pipes協議使用進程間通信信信道進行高效的服務器內部通信和局域網通信,但由於通過網络或防火牆連接時Named Pipes需要過多的開銷,而且它還要求打開額外的端口445,所以一般來說最好禁用Named Pipes。然而有許多應用程序需要用到Named Pipes協議,因为他們是圍繞NetbBIOS或给予LAN的協議設計的。Named Pipes可以輕松訪問單個安全域中的遠程過程調用,因而對這些應用程序很有幫助。如果您需要支持這些應用程序,而SQL Server並沒有暴露给外部通信量,那麼启用Named Pipes協議和相應的端點的風險是最小的。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

/****** オブジェクト:  UserDefinedFunction [dbo].[F_ComputeUnitProductAmount]    スクリプト日付: 09/13/2012 14:26:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
/*関數概要-------------------------------------------------------
        関數説明    :計算公式によって、結果をもらいます
        作成者             :王憲壽(ネットワークに参考します)
        作成日付    :2009/06/04
        例えば             :SELECT dbo.F_ComputeUnitProductAmount('5+(4*3)^2+10/2')
----------------------------------------------------------------*/
/*---------------------------------------------------------------
        修正日付    :2009/07/02
        修正者             :王憲壽
        修正內容    :OLEDB対象を釈放する
----------------------------------------------------------------*/
CREATE      FUNCTION [dbo].[F_ComputeUnitProductAmount]
(
@str varchar(1000)--計算用公式
)
RETURNS sql_variant -----もしSUM(),AVG()など計算の時、INTに転換する
-----------------------------------------------------------------
AS
-----------------------------------------------------------------
begin
declare @re sql_variant

declare @err int,
        @src varchar(255)
        ,@desc varchar(255)
        ,@hr int

declare @obj int

exec @err=sp_oacreate 'MSScriptControl.ScriptControl',@obj out
if @err<>0 goto lb_err

exec @err=sp_oasetproperty @obj,'Language','vbscript'
if @err<>0 goto lb_err

exec @err=sp_oamethod @obj,'Eval',@re out,@str
exec @err=sp_oadestroy @obj---2009/07/02追加---なければ、256行だけを実行する
if @err=0 return(@re)

lb_err:
return(0)
end









shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

a2c3489e-81c5-3d7d-b096-4f8c66b3eeb6  

在我的電腦上右鍵菜單中選擇-"管理",點擊"角色",點擊"刪除角色",選擇「遠程桌面服務」刪除即可。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

 

sql分享


shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

--在同一天之內,分機號相同,對方號碼相同的,呼叫類型为呼出的通話記錄,只保留通話時長最長的一條記錄
--更具Id刪除不是通話時長最長的記錄
delete from RecordLogInfo where Id in(
--找到某段時間範圍內,呼叫類型为呼出的不是最長的所有記錄
select Id from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01' and Id not in (
--为了找到通話時長最長的記錄,第二步和第一步需要聯合查詢,找到最長記錄的Id
select Id from 
(
--第二步:開始分組,發現分組後Id沒有了
select AttendantPhoneNo,UserPhoneNo,LogTime,max(RecordDuration) as RecordDuration,count(*) as counts from (
--第一步:找到符合條件的記錄
select AttendantPhoneNo,UserPhoneNo,RecordDuration,CONVERT(varchar(10), LogTime, 120) as LogTime from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01') 
RecordLogInfo group by LogTime,AttendantPhoneNo,UserPhoneNo
) as a,(select Id,AttendantPhoneNo,UserPhoneNo,RecordDuration,CONVERT(varchar(10), LogTime, 120) as LogTime from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01') as b
 where a.AttendantPhoneNo=b.AttendantPhoneNo and a.UserPhoneNo=b.UserPhoneNo and a.LogTime=b.LogTime and a.RecordDuration=b.RecordDuration
) 
)


--如果在撥打過程中按鍵則系統記錄的電話號碼的實際長度會增長,截取字段,這样才不會遺漏,最後根據查出來的Id刪除數據
select Id from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01' and Id not in (
select Id from 
(
select AttendantPhoneNo,substring(UserPhoneNo,1,12) as UserPhoneNo,LogTime,max(RecordDuration) as RecordDuration,count(*) as counts from (
select AttendantPhoneNo,substring(UserPhoneNo,1,12) as UserPhoneNo,RecordDuration,CONVERT(varchar(10), LogTime, 120) as LogTime from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01' and len(substring(UserPhoneNo,1,12))=12) 
RecordLogInfo group by LogTime,AttendantPhoneNo,UserPhoneNo
) as a,(select Id,AttendantPhoneNo,substring(UserPhoneNo,1,12) as UserPhoneNo,RecordDuration,CONVERT(varchar(10), LogTime, 120) as LogTime from RecordLogInfo where CtiCallType=1 and LogTime>='2012-10-01' and len(substring(UserPhoneNo,1,12))=12) as b
 where a.AttendantPhoneNo=b.AttendantPhoneNo and a.UserPhoneNo=b.UserPhoneNo and a.LogTime=b.LogTime and a.RecordDuration=b.RecordDuration
) 



From:CSDN        

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

/***********************************************************************************************
author: QLP
last updated: 2005-03-16, awens

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

SQL Server 18452登錄錯誤 無法連接到伺服器 伺服器:消息18452, 級別16,狀態1 [Microsoft][ODBC SQL Server Driver][SQL Server]使用者‘sa’登陸失敗。原因:未與信任SQL Server連接相關聯 該錯誤產生的原因是由於SQL Server使用了」僅 Windows」的身份驗證方式,因此使用者無法使用SQL Server的登錄帳戶(例如 sa )進行連接,
解決方法如下
1、設置允許SQL Server身份登錄 (基本上這個很有用) 操作步驟:

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

1.獲取所有資料庫名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
 

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

在SQL2000/2005中可以快速壓縮日誌log檔,通過SQL,
方法一:

 

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

SQL的自增列挺好用,只是開發過程中一旦刪除資料,識別欄位就不連續了 寫起來 也很鬱悶,所以查閱了一下識別欄位重置的方法 發現可以分為三種:
--- 刪除原表資料,並重置自增列
truncate table tablename --truncate方式也可以重置自增欄位

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()