Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание новой базы с именем, вводимым пользователем  [new]
Anreyart
Member

Откуда:
Сообщений: 2
Добрый день!

Прошу прощения за глупый вопрос новичка...

Пытаюсь создать новую базу данных из скрипта на VBS. Пользователь вводит имя новой базы и жмет на кнопку "Создать".

Помогите, пожалуйста, правильно составить команду SQL на создание новой базы данных с именем, указанным в ячейке памяти.

Использую MS SQL Server 2005

Спасибо!
12 авг 09, 11:53    [7526944]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Anreyart
Добрый день!

Прошу прощения за глупый вопрос новичка...

Пытаюсь создать новую базу данных из скрипта на VBS. Пользователь вводит имя новой базы и жмет на кнопку "Создать".

Помогите, пожалуйста, правильно составить команду SQL на создание новой базы данных с именем, указанным в ячейке памяти.

Использую MS SQL Server 2005

Спасибо!
В MSSQL базы создаются командой CREATE DATABASE, синтаксис которой описан в хелпе. Вашей программе нужно всего лишь правильно склеить и отправить серверу строчку с этой командой.
12 авг 09, 11:56    [7526977]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
Glory
Member

Откуда:
Сообщений: 104760
http://msdn.microsoft.com/en-us/library/ms176061(SQL.90).aspx
12 авг 09, 11:56    [7526978]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Anreyart
Добрый день!

Прошу прощения за глупый вопрос новичка...

Пытаюсь создать новую базу данных из скрипта на VBS. Пользователь вводит имя новой базы и жмет на кнопку "Создать".

Помогите, пожалуйста, правильно составить команду SQL на создание новой базы данных с именем, указанным в ячейке памяти.

Использую MS SQL Server 2005

Спасибо!
Ну, вы п хоть код показали...
12 авг 09, 11:57    [7526989]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
Anreyart
Member

Откуда:
Сообщений: 2
Вот именно с грамотным приклеиванием тега и проблема...

Вот код:
_____________________________________

Dim conn, rst, SQL_Table

On Error Resume Next

Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")

'Open data source
conn.Open "Provider=MSDASQL;DSN=Database_1" 'DSN= name of the odbc-database

'Error routine
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
Err.Clear
Exit Sub
End If

'Definition of new database
SQL_Table = "CREATE DATABASE " & szDatabase Вот здесь и ошибка

'Create new database
Set rst = conn.Execute(SQL_Table)

'Error routine
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
Err.Clear
Exit Sub
End If

'Close data source
conn.close

Set conn = Nothing
Set rst = Nothing
________________________________

Но он не работает - ругается, что неверно составлен запрос
12 авг 09, 12:26    [7527196]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
Glory
Member

Откуда:
Сообщений: 104760
Anreyart

'Definition of new database
SQL_Table = "CREATE DATABASE " & szDatabase Вот здесь и ошибка

Но он не работает - ругается, что неверно составлен запрос

Это - еще не запрос к серверу. Это - еще часть вашей клиентской программы
12 авг 09, 12:32    [7527237]     Ответить | Цитировать Сообщить модератору
 Re: Создание новой базы с именем, вводимым пользователем  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
так навскидку для анализа:


CREATE DATABASE [ttt] ON  PRIMARY 
( NAME = N'ttt', FILENAME = N'D:\MSSQL\DATA\ttt.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'ttt_log', FILENAME = N'D:\MSSQL\DATA\ttt_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
EXEC dbo.sp_dbcmptlevel @dbname=N'ttt', @new_cmptlevel=90
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ttt].[dbo].[sp_fulltext_database] @action = 'disable'
end
GO
ALTER DATABASE [ttt] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [ttt] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [ttt] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [ttt] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [ttt] SET ARITHABORT OFF 
GO
ALTER DATABASE [ttt] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [ttt] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [ttt] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [ttt] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [ttt] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [ttt] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [ttt] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [ttt] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [ttt] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [ttt] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [ttt] SET  DISABLE_BROKER 
GO
ALTER DATABASE [ttt] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [ttt] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [ttt] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [ttt] SET  READ_WRITE 
GO
ALTER DATABASE [ttt] SET RECOVERY SIMPLE 
GO
ALTER DATABASE [ttt] SET  MULTI_USER 
GO
ALTER DATABASE [ttt] SET PAGE_VERIFY CHECKSUM  
GO
USE [ttt]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [ttt] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO
12 авг 09, 12:34    [7527252]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить