下面的t-sql代碼編譯得很好。但是,當我運行它像 執行[SP_ATTACH_NW] N'C:\ MyFolder文件」我得到發生文件激活錯誤。物理文件名'N @ filename
消息5105,級別16,狀態2,過程SP_ATTACH_NW,14號線 出現文件激活錯誤。物理文件名'N @ mdfFileName'可能不正確。診斷並更正其他錯誤,然後重試該操作。
USE master
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_ATTACH_NW] (
@DestFolder varchar(255)
)
AS
BEGIN
SET NOCOUNT ON;
Declare @mdfFileName varchar(255)
Declare @ldfFileName varchar(255)
set @mdfFileName = @DestFolder + '\northwnd.mdf'
set @ldfFileName = @DestFolder + '\northwnd.ldf'
CREATE DATABASE [Northwind] ON
(FILENAME = [email protected]),
(FILENAME = [email protected])
FOR ATTACH
END
請指教。感謝
你不能只是chuck參數放入TSQL語句的中間,並期望用參數值替換。您可以使用動態SQL來執行此操作。無論如何,通過存儲過程看起來很奇怪。 – 2011-05-03 22:29:13
這是什麼用法?爲什麼你需要一個SP來創建一個數據庫? – 2011-05-04 04:22:42
好的。下面的bgn回答了我的問題。我需要將一個數據庫移動到另一個驅動器,以便一個驅動器空間不足的用戶可以運行一個小應用程序來執行此操作。使用sql dmo和c#我能夠分離,移動mdf/ldf文件,但是由於新的mdf/ldf文件夾位置上的文件夾權限問題而導致附加它時失敗。而不是與文件夾權限混淆,我決定通過sp做附加。 – Gullu 2011-05-04 13:18:01