bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries Tagged ‘MSSQL’

MSSQL6.5 upgrade to MSSQL2005

使用 MSSQL2005 的匯入資料功能,連接 MSSQL6.5 用 OLE DB Provider 的資料連接

碰到下列問題

作業已停止…
– 建立 TransferProvider。 (成功)
– 建立破壞性 SQL 的暫存檔。 (成功)
– 建立建設性 SQL 的暫存檔。 (成功)
– 建立資料表中繼資料的 XML 暫存檔案。 (成功)
– 使用檔案和來源/目的地連接資訊來設定 TransferProvider。 (成功)
– 使用 TransferProvider 執行傳送。 (錯誤)
 訊息
 * 錯誤 : errorCode=-1071636471 description=發生 OLE DB 錯誤。錯誤碼: 0x80040E14。
 有 OLE DB 記錄可用。 來源: “Microsoft OLE DB Provider for SQL Server”  Hresult: 0x80040E14  描述: “Line 1: Incorrect syntax near ‘[‘.”。
  helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC} (Microsoft.SqlServer.DtsTransferProvider)
 
 如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
 
– 執行破壞性 SQL。(卸除資料表) (成功)
– 執行建設性 SQL。(建立資料表) (成功)
– 建立 [FBUSA].[ACIPDF] 的暫存資料表傳送封裝 (已停止)
– 執行 [FBUSA].[ACIPDF] 的傳送封裝 (已停止)
– 正在複製到  (已停止)
因為SQL2005撈資料時會將資料表的SQL語法設為

select [F1],[F2],… from [DBName].[Schema].[TBName]

的格式,而MSSQL6.5不支援此種語法格式,所以發生錯誤。

所以改用 MSSQL2000 的匯出匯入精靈來處理,結果資料的傳輸順利完成。

不過主鍵、索引、預設值、約束條件的設定就要全部手動重建。

Leave a Comment

MS SQL Log 修復

如果遺失日誌檔

小知識: SQL恢復技術

SQL Server 資料庫檔恢復技術
SQL Server 資料庫備份有兩種方式,一種是使用BACKUP DATABASE 將資料庫檔備份出去,另外一種就是直接拷貝資料庫檔 mdf 和日誌檔ldf的方式。下面將主要討論一下後者的備份與恢復。
本文假定您能熟練使用SQL Server Enterprise Manager (SQL Server企業管理器) 和 SQL Server Quwey Analyser(SQL Server查詢分析器)。
(Read the rest of this entry…)

Leave a Comment

MS-SQL 改變 Database 中 Table 的 Owner

1. 更改某個 Table 的 Owner
exec sp_changeobjectowner ‘tablename’,’dbo’

2. 使用預儲程序變更全部的 Table 的 Owner

1
2
3
4
CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
1
2
3
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name

OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner
END

close curObject
deallocate curObject

GO

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整