2013年9月1日 星期日

SQL Server 已啟動,但本機無法連結

SQL Server 已啟動,但本機無法連結,telnet 1433 還是失敗















































ping 127.0.0.1 是OK的















查詢SQL Server 服務名稱







































在 cmd 執行 sc query 剛才查到的名稱,看是否正常(sc query MSSQL$SQLEXPRESS)














在 cmd  執行 sqlcmd -L














在 cmd  執行osql -L














開啟 TCP/IP看 1433 port 是否有設定


































用剛才sqlcmd -L查到的伺服器輸入,即可登入




















參考資料:
http://www.mssqltips.com/sqlservertip/2340/resolving-could-not-open-a-connection-to-sql-server-errors/

修改伺服器名稱

use master
go

-- 傳回執行 SQL Server 的本機伺服器名稱
select @@servername

--傳回有關伺服器執行個體的屬性資訊--指定的 SQL Server 執行個體所關聯的 Windows 伺服器和執行個體資訊
select serverproperty('servername')















-- 從 SQL Server 本機執行個體上的已知遠端和連結伺服器清單中移除伺服器
-- 刪除 TEST1
EXEC sp_dropserver 'TEST1'

--定義 SQL Server 本機執行個體的名稱。 當裝載 SQL Server 的電腦重新命名時,請使用 sp_addserver 將新電腦名稱告知 SQL Server Database Engine 執行個體。 此程序必須在電腦上裝載的所有 Database Engine 執行個體上執行。 無法變更 Database Engine 的執行個體名稱
-- 新增 為 SERVER
EXEC sp_addserver @server='SERVER', @local = 'local'

重啟 SQL Server












   


參考資料:
http://technet.microsoft.com/zh-tw/library/ms187944.aspx
http://technet.microsoft.com/zh-tw/library/ms174396.aspx
http://technet.microsoft.com/zh-tw/library/ms174310.aspx

2013年8月31日 星期六

安裝SQL Server 2008 express 時出現效能計數器登錄區一致性的錯誤

在 XP 上安裝 SQL Server 2008 express 時出現效能計數器登錄區一致性的錯誤



















解決方式:
到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib下











找出 004 和 009 下的 Counter 的最大值,並修改Last Counter的值






















































































找出 004 和 009 下的 Help 的最大值,並修改Last Help的值


















































































重新安裝 SQL Serrver















參考資料:
http://demo.tc/Post/450
http://support.microsoft.com/kb/300956

2013年4月23日 星期二

找出上個月第一天和最後一天的日期

select DATEADD(month, DATEDIFF(month, '1900/01/01', getdate()) -1,'1900/01/01')
=>上個月第一天的日期
=> ex:2013-03-01 00:00:00.0

select DATEADD(day,-1,DATEADD(month, DATEDIFF(month, '1900/01/01', getdate()),'1900/01/01'))
=>上個月最後一天的日期
=>ex:2013-03-31 00:00:00.0

2013年2月21日 星期四

system table 查詢有關 identity 型態的欄位

-- 查詢identity型態的欄位

use DB
go
select a.name as table_name, b.name as identity_column_name
from sysobjects a, syscolumns b
where a.type = 'U' -- U指 table
and a.id = b.id
and b.status = 128  --128指 identity 欄位
go

-- 查詢 identity 型態有設 identity_gap 的欄位

use DB
go
select *
from sysindexes
where isnull(identitygap,0) <> 0
go