Из документации :
Вы не можете вставлять значения
blockquote>TRUE
иFALSE
в столбец базы данных. Вы не можете выбрать или получить значения столбца в переменнойBOOLEAN
. Функции, вызываемые из запросаSQL
, не могут принимать какие-либо параметрыBOOLEAN
. Также нет встроенных функцийSQL
, таких какTO_CHAR
; для представления значенийBOOLEAN
на выходе, вы должны использовать конструкцииIF-THEN
илиCASE
для перевода значенийBOOLEAN
в какой-либо другой тип, например0
или1
,'Y'
или'N'
,'true'
или'false'
и т. д.Вам нужно будет создать функцию-обертку, которая будет использовать тип данных
SQL
и использовать его вместо этого.
Отсоедините базу данных, скопируйте.MDF файл (и .ldf файл), и можно присоединить обоих. Или только один, для хранения того как копии для быстрой копии позже.
команда "Copy database" от Studio управления SQL Server Mcirosoft может также работать как это.
можно автоматизировать/писать сценарий это легко, с помощью PowerShell или просто.Cmd файлы с вызовами к osql.
И можно также использовать Studio управления SQL UI, чтобы создать резервное копирование файлов, и затем восстановить его в новую базу данных по тому же или любому другому серверу.
В SQL 2005 я сказал бы, что самый быстрый путь состоит в том, чтобы использовать Базу данных Копии под Базой данных-> Задачи
, источник и место назначения могут быть тем же, и это позволяет Вам переименовывать базу данных при желании.
Существует инструмент командной строки (DOS) для создания и восстановления баз данных.
Также можно выполнить это как сценарий T-SQL. http://www.sqlmag.com/Article/ArticleID/46560/sql_server_46560.html
Я использовал бы сценарии, поскольку это помогает прозрачности того, что Вы делаете.
(Особенно, если Вы хотите сделать это часто, как, изменения, у каждого будут немного отличающиеся данные.)
Однако, если Вы не хотите переходить к стычке создания сценариев, самый легкий путь состоит в том, чтобы скопировать и затем восстановить к другому имени.
Если Вы хотите написать сценарий его, можно использовать следующее. Это является также лучшим, если Вы не можете вывести дб из эксплуатации:
USE master
GO
-- the original database (use 'SET @DB = NULL' to disable backup)
DECLARE @DB varchar(200)
SET @DB = 'PcTopp'
-- the backup filename
DECLARE @BackupFile varchar(2000)
SET @BackupFile = 'c:\pctopp\sqlserver\backup.dat'
-- the new database name
DECLARE @TestDB varchar(200)
SET @TestDB = 'TestDB'
-- the new database files without .mdf/.ldf
DECLARE @RestoreFile varchar(2000)
SET @RestoreFile = 'c:\pctopp\sqlserver\backup'
-- ****************************************************************
-- no change below this line
-- ****************************************************************
DECLARE @query varchar(2000)
DECLARE @DataFile varchar(2000)
SET @DataFile = @RestoreFile + '.mdf'
DECLARE @LogFile varchar(2000)
SET @LogFile = @RestoreFile + '.ldf'
IF @DB IS NOT NULL
BEGIN
SET @query = 'BACKUP DATABASE ' + @DB + ' TO DISK = ' + QUOTENAME(@BackupFile, '''')
EXEC (@query)
END
-- RESTORE FILELISTONLY FROM DISK = 'C:\temp\backup.dat'
-- RESTORE HEADERONLY FROM DISK = 'C:\temp\backup.dat'
-- RESTORE LABELONLY FROM DISK = 'C:\temp\backup.dat'
-- RESTORE VERIFYONLY FROM DISK = 'C:\temp\backup.dat'
IF EXISTS(SELECT * FROM sysdatabases WHERE name = @TestDB)
BEGIN
SET @query = 'DROP DATABASE ' + @TestDB
EXEC (@query)
END
RESTORE HEADERONLY FROM DISK = @BackupFile
DECLARE @File int
SET @File = @@ROWCOUNT
DECLARE @Data varchar(500)
DECLARE @Log varchar(500)
SET @query = 'RESTORE FILELISTONLY FROM DISK = ' + QUOTENAME(@BackupFile , '''')
CREATE TABLE #restoretemp
(
LogicalName varchar(500),
PhysicalName varchar(500),
type varchar(10),
FilegroupName varchar(200),
size int,
maxsize bigint
)
INSERT #restoretemp EXEC (@query)
SELECT @Data = LogicalName FROM #restoretemp WHERE type = 'D'
SELECT @Log = LogicalName FROM #restoretemp WHERE type = 'L'
PRINT @Data
PRINT @Log
TRUNCATE TABLE #restoretemp
DROP TABLE #restoretemp
IF @File > 0
BEGIN
SET @query = 'RESTORE DATABASE ' + @TestDB + ' FROM DISK = ' + QUOTENAME(@BackupFile, '''') +
' WITH MOVE ' + QUOTENAME(@Data, '''') + ' TO ' + QUOTENAME(@DataFile, '''') + ', MOVE ' +
QUOTENAME(@Log, '''') + ' TO ' + QUOTENAME(@LogFile, '''') + ', FILE = ' + CONVERT(varchar, @File)
EXEC (@query)
END
GO
Скопированный с: http://weblogs.asp.net/mschwarz/archive/2004/08/26/220735.aspx
Еще одна опция добавить,
Вот запись в блоге, которая говорит об использовании Мастера Печати по базе данных и как это используется для экспорта всех элементов базы данных, включая данные, в файл SQL. Могло бы быть полезным и кажется довольно простым.