我们正在将其中一台服务器从SQL Server 2005迁移到SQL Server2008。该服务器上大约有50个小型数据库。
我们采用的迁移路径如下:
有没有使用t-sql将50个数据库附加到新服务器的快速方法?
所有数据文件将位于E:\ DATA,事务日志将位于E:\ TLOG
使用SQLCMD模式,可以轻松编写以下脚本:
:setvar dbname YourDatabaseName
:setvar dbfile N'E:\DATA\YourDatabase.mdf'
:setvar logfile N'E:\TLOG\YourDatabase_log.ldf'
USE [master]
GO
CREATE DATABASE $(dbname) ON
( FILENAME = $(dbfile) ),
( FILENAME = $(logfile) )
FOR ATTACH
GO
这可以sqlcmd.exe
从命令行使用(您甚至可以从命令行提供变量的值dbname, dbfile, logfile
),或者如果启用,则可以在SQL
Server Management Studio中使用Tools > Options > Query Execution > by default, open new queries in SQLCMD mode
。
在MSDN上了解有关SQLCMD实用程序及其所有参数的更多信息。
PS:当然,这种使用启用了SQLCMD的脚本的方法也适用于BACKUP / RESTORE循环:-)(由Aaron推荐)
PPS:如果您具有良好的命名约定,并且数据文件始终为$(dbname).mdf
,日志文件始终为$(dbname)_log.ldf
,则还可以使用以下缩短的SQLCMD脚本:
:setvar dbname YourDatabaseName
USE [master]
GO
CREATE DATABASE $(dbname) ON
( FILENAME = N'E:\DATA\$(dbfile).mdf' ),
( FILENAME = N'E:\TLOG\$(logfile)_log.ldf' )
FOR ATTACH
GO
然后只需在命令行中调用它即可:
C:\> sqlcmd.exe -S yourserver -E -i attach.sql -v dbname=YourDb1
依此类推,对于每个数据库,您都需要重新附加一次。
PPPS:如果要还原备份,则稍微复杂一点:
:setvar dbname YourDatabaseName
USE [master]
GO
RESTORE DATABASE $(dbname)
FROM DISK = N'E:\Backup\$(dbname).bak'
WITH FILE = 1,
MOVE N'$(dbname)' TO N'E:\DATA\$(dbname).mdf',
MOVE N'$(dbname)_Log' TO N'E:\TLOG\$(dbname)_Log.ldf',
NOUNLOAD, REPLACE
GO
只要您.bak
使用与数据库名称相同的名称命名文件,并且将它们放置在固定位置即可(我假设E:\Backup
在这里-
根据需要进行调整),此方法就可以使用。
我有一组SQL Server批处理过程,所有这些过程都需要安装并定期执行,它们都具有以下结构: 使用 如果存在(SELECT*Fromsys.objectsWHEREobject_id=OBJECT_ID(N")AND type in(N'P', N'PC'))DROP PROCEDURE[dbo].[]GO 创建过程 作为 开始 结束 我正在寻找一种方法来运行每个.sql文件一次,以便在所有数据
主要内容:精确数字类型,数字类型,日期和时间类型,字符串,Unicode字符串,二进制字符串,T-SQL中使用的其他数据类型,T-SQL中流量控制的关键词SQL Server 中的数据类型是一个属性,它生成对象的数据。每个变量、列和表达式都与 T-SQL 中的数据类型相关。创建表时将根据需要为基于列的表选择特定的数据类型。 SQL Server 有七大类,包括多种数据类型。 精确数字类型 类型 最小值 最大值 Bigint -9,223,372,036,854,775,808 9,223,372
我在附加数据库并将附加数据库中的所有行插入到主数据库时遇到问题。 我做错了什么?
好的,我有一张像这样的桌子 现在我需要把它变成这样: 我一直在查看动态枢轴示例,但似乎我无法将它们放入我的场景中。 有人能帮忙吗?
主要内容:语法,实例假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。 语法 SQLite 的 ATTACH DATABASE 语句的基本语法如下: 如果数据库尚未被创建,上面的命令将创建一个数据库,如果数据库已存在,则把数据库文件名称与逻辑数据库 '
MS SQL 有许多用于处理数字数据或字符串的内置函数。下面给出的列表包含有用的 SQL 内置函数: SQL Server COUNT 函数 - SQL Server COUNT 聚合函数用于计算数据库表中的行数。 SQL Server Max 函数 - SQL 中的 Max Aggregate 函数允许我们选择列的最大值。 SQL Server Min 函数 - SQL 中的 Min Aggre