PDA

View Full Version : مشکل در ساخت دیتابیس از روی دیتابیس دیگر



pezhvakco
یک شنبه 14 فروردین 1390, 18:45 عصر
سلام:
کد دستور زیر یه دیتا بیس از روی دیتابیس موجود می سازد ولی ستون شاخص (ID) جدول هایی که نوع این ستون آن ها شناسه (Identity ) است را نمی سازد (به دیتابیس تازه جا به جا نمی کند) .
(در جدول هایی که ستون شناسه دارند، همه ستون ها یه جز همین ستون زا می سازد )

CREATE PROCEDURE CreateDB_DB @dbName nvarchar(20) AS

BEGIN
declare @path nvarchar(400)
Declare @sql nvarchar(1000)

Set @path = ( SELECT SubString(filename, 1, CharIndex(N'DataBase1_Data.mdf', Lower(filename)) - 1)
FROM master..sysdatabases Where name = 'DataBase1')

Set @sql = ' BACKUP DATABASE DataBase1 TO DISK = ' + '''' + @path + 'DataBase1.bak' + '''' +
' RESTORE FILELISTONLY FROM DISK = ' + '''' + @path + 'DataBase1.bak' + '''' +
' RESTORE DATABASE ' + @dbName +
' FROM DISK = ' + '''' + @path + 'DataBase1.bak' + '''' +
' WITH MOVE ' + '''' + 'DataBase1_Data' + '''' + ' TO ' + '''' + @path + @dbName + '_Data.mdf' + '''' + ', ' +
' MOVE ' + '''' + 'DataBase1_Log' + '''' + ' TO ' + '''' + @Path + @dbName + '_Log.ldf' + ''''

exec sp_executesql @sql

END
GO

حمیدرضاصادقیان
دوشنبه 15 فروردین 1390, 07:32 صبح
سلام.
این موردی که شما می فرمائید ارتباطی به کد شما نداره. چون در بحث Backup&Restore کل دیتابیس از روی Backup ساخته می شود. شما وقتی میخواهید از دیتابیس مورد نظر Backup تهیه کنید ببینید این ستون وجود داره یاخیر.همچنین شما از طریق Management Studio یک Backup تهیه کرده و توسط دستورات بالا اونو Restore کنید ببینید آیا بازم به این مشکل برخورد می کنید یاخیر.

pezhvakco
دوشنبه 15 فروردین 1390, 20:17 عصر
همچنین شما از طریق Management Studio یک Backup تهیه کرده و توسط دستورات بالا اونو Restore کنید ببینید آیا بازم به این مشکل برخورد می کنید یاخیر.
با این روش مشکلی نداره .

مشکل از این کد دستور بود :
' RESTORE FILELISTONLY FROM DISK = ' + '''' + @path + 'DataBase1.bak'

rayangostar_co
چهارشنبه 11 بهمن 1391, 16:20 عصر
لطفا دستور درست و کاملشو بزار اینجا -با تشکر