-- Databaseが存在していれば削除して、databaseを再作成
use master;
IF EXISTS (SELECT * FROM sys.databases WHERE name = 'testdb')
BEGIN
ALTER DATABASE testdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE testdb;
END;
create database testdb;
-- ユーザ作成
IF NOT EXISTS (SELECT * FROM master.dbo.syslogins WHERE loginname = N'testuser')
BEGIN
CREATE LOGIN testuser WITH PASSWORD=N'testuser', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
ALTER SERVER ROLE [sysadmin] ADD MEMBER testuser;
END;
-- 必要に応じてテーブル作成
use testdb;
create table test (
id text
)
create table test2 (
id text
)
-- 必要の応じてリンクサーバの再作成
use master;
EXEC sp_dropserver @server=N'testlink', @droplogins='droplogins';
EXEC sp_addlinkedserver @server = N'testlink', @srvproduct=N'', @provider=N'SQLNCLI11', @datasrc=N'localhost';
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'testlink',
@locallogin = NULL ,
@useself = N'False',
@rmtuser = N'sa',
@rmtpassword = N'p@ssw0rd';
-- バックアップのサンプル
BACKUP DATABASE testdb TO
DISK = N'C:\data\temp\testdb.bak'
WITH INIT;
-- リストアのサンプル
RESTORE DATABASE testdb FROM
DISK = N'C:\data\temp\testdb.bak'
WITH REPLACE;
SET DB_USER=sa
SET DB_PASS=test
SET WORK_DIR=C:\data\temp\
rmdir /s /q %WORK_DIR%\backup
powershell expand-archive test.zip %WORK_DIR%
sqlcmd -S localhost -U %DB_USER% -P %DB_PASS% -i test.sql
del test.zip
powershell compress-archive %WORK_DIR%\backup test.zip
rmdir /s /q %WORK_DIR%\backup
[カテゴリ:
データベース >
SQL Server]
[通知用URL]
Tweet
最終更新時間:2024年01月29日 09時49分09秒