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

Откуда:
Сообщений: 104
Здравствуйте! Значит написал динамический запрос
DECLARE @view nvarchar(1000)

SELECT @view = 'USE "123" CREATE VIEW StoreIceCreamView 
AS 
SELECT	NameIceCream,
		QuantityInBox, 
		QuantityThing / QuantityInBox AS QuantityBox,
		QuantityThing,	
		PriceThing,
		PriceBox, 
		QuantityThing * PriceThing AS Summa
FROM StoreIceCream
GO
CREATE VIEW StoreFrozenView
AS 
SELECT	NameFrozen,	QuantityThing, PriceThing,	QuantityThing * PriceThing AS Summa
FROM StoreFrozen
GO
CREATE VIEW ProviderView 
AS 
SELECT NameProvider, Adress, Telephone, Fax
FROM Providers
GO
CREATE VIEW WriteOffIceCreamView 
AS
SELECT 
		QuantityThing,
		PriceThing,
		QuantityThing * PriceThing AS Summa,
		DateWriteOff
FROM WriteOffIceCream
GO
CREATE VIEW ExpenseListView 
AS
SELECT IDExpenseList, Buyer, Summa, Data
FROM ExpenseList
GO
CREATE VIEW ReceiveListView
AS
SELECT IDReceiveList, NameProvider, Summa, Data
FROM ReceiveList, Providers
WHERE ReceiveList.IDProvider = Providers.IDProvider'

EXEC (@view)
При выполнении почему-то ругается на CREATE VIEW, хотя на мой взгляд всё правильно. Помогите. Заранее спасибо.
30 июн 11, 17:03    [10901670]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
GO не является TSQL-командой. Ну и надо читатать, что вам сервер пишет.
30 июн 11, 17:05    [10901689]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
dimasikus
Member

Откуда:
Сообщений: 104
Забыл сказать, что имя базы меняется, его выбирает пользователь
30 июн 11, 17:06    [10901694]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
dimasikus
Member

Откуда:
Сообщений: 104
сервер пишет, что CREATE VIEW должна быть первой инструкцией в пакетном запросе
30 июн 11, 20:14    [10902694]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
сказали же уже...
GO не является TSQL-командой.

DECLARE @view nvarchar(max)

SELECT @view = 'USE "tempdb" exec(''CREATE VIEW StoreIceCreamView 
AS 
SELECT	NameIceCream,
		QuantityInBox, 
		QuantityThing / QuantityInBox AS QuantityBox,
		QuantityThing,	
		PriceThing,
		PriceBox, 
		QuantityThing * PriceThing AS Summa
FROM StoreIceCream'')

exec(''CREATE VIEW StoreFrozenView
AS 
SELECT	NameFrozen,	QuantityThing, PriceThing,	QuantityThing * PriceThing AS Summa
FROM StoreFrozen'')

exec(''CREATE VIEW ProviderView 
AS 
SELECT NameProvider, Adress, Telephone, Fax
FROM Providers'')

exec(''CREATE VIEW WriteOffIceCreamView 
AS
SELECT 
		QuantityThing,
		PriceThing,
		QuantityThing * PriceThing AS Summa,
		DateWriteOff
FROM WriteOffIceCream'')

exec(''CREATE VIEW ExpenseListView 
AS
SELECT IDExpenseList, Buyer, Summa, Data
FROM ExpenseList'')

exec(''CREATE VIEW ReceiveListView
AS
SELECT IDReceiveList, NameProvider, Summa, Data
FROM ReceiveList, Providers
WHERE ReceiveList.IDProvider = Providers.IDProvider''')

EXEC (@view)
30 июн 11, 20:41    [10902751]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
dimasikus
Member

Откуда:
Сообщений: 104
Большое спасибо заработало, но есть небольшой вопрос по коду
зачем писать EXEC перед каждым CREATE VIEW.
30 июн 11, 21:15    [10902832]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
dimasikus
сервер пишет, что CREATE VIEW должна быть первой инструкцией в пакетном запросе
30 июн 11, 21:22    [10902855]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
dimasikus
но есть небольшой вопрос по коду


Batches
30 июн 11, 21:33    [10902914]     Ответить | Цитировать Сообщить модератору
 Re: Динамический запрос  [new]
dimasikus
Member

Откуда:
Сообщений: 104
спасибо всем
30 июн 11, 21:55    [10903037]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить