Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CREAT VIEW  [new]
молоко
Guest
Подскажите пожалуйста как быть.
-
Работаю через MS SQL Server Management Studio. На сервере Server1, с базой данных toy_base.
Не имею прав к просмотру других баз данный, но toy_base могу всевозможно изменять(добавлять в таблицы, удалять какие то данные, обновлять) это так, информация для полноты представления:)
-
Вот данный пример. Хочу создать VIEW.
Делаю это нажав кнопку 'создать запрос', ввожу следующее:
use toy_base
CREATE VIEW svod
select a.name, a.god, b.rabota
from a, b
where a.code = b.code

выдает ошибку:
CREATE VIEW должна быть первой инструкцией в пакетном запросе.
если не прописываю
use toy_base
, то машина не видит как понимаю с чем я работаю и выдает ошибку.
если прописываю после CREATE VIEW ошибка синтаксиса.
прошу не критиковать осмысленность примера. я всего лишь хочу создать VIEW и не могу разобраться в чем дело:)
6 июн 13, 14:54    [14400157]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
use toy_base
GO
CREATE VIEW svod
select a.name, a.god, b.rabota
from a, b
where a.code = b.code
GO
6 июн 13, 14:57    [14400173]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
молоко
Guest
Winnipuh
use toy_base
GO
CREATE VIEW svod
select a.name, a.god, b.rabota
from a, b
where a.code = b.code
GO


"Msg 156, Level 15, State 1, Procedure svod, Line 2
Неправильный синтаксис около ключевого слова "select"."
6 июн 13, 15:01    [14400195]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
молоко
Winnipuh
use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, b.rabota
from a, b
where a.code = b.code
GO


"Msg 156, Level 15, State 1, Procedure svod, Line 2
Неправильный синтаксис около ключевого слова "select"."


ну так почитать можно про create view ...

use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, b.rabota
from a, b
where a.code = b.code
GO
6 июн 13, 15:03    [14400214]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
ASasasasasasasas
Guest
молоко,
CREATE VIEW svod AS
6 июн 13, 15:03    [14400215]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
молоко
Winnipuh
use toy_base
GO
CREATE VIEW svod
select a.name, a.god, b.rabota
from a, b
where a.code = b.code
GO


"Msg 156, Level 15, State 1, Procedure svod, Line 2
Неправильный синтаксис около ключевого слова "select"."

src sql]
use toy_base
GO
CREATE VIEW svod AS ...[/src]
6 июн 13, 15:03    [14400221]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
iiyama
Member

Откуда:
Сообщений: 642
молоко, и в топку from a,b where

use toy_base
GO
CREATE VIEW svod
as
select a.name, a.god, b.rabota
from a
	inner join b on a.code = b.code
6 июн 13, 15:07    [14400248]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
молоко
Guest
спасибо, да, не хватало AS:)
все сделалось.
а почему нельзя повторять столбцы, на пример для того что бы что то сравнить и просто сделать немного визуально удобней?
к примеру если бы было вот так:

use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, c.rabota1, a.god, c.rabota2
from a, c
where a.code = c.code
GO

god - повторяется, и MS SQL выдает ошибку
это возможно обойти?
6 июн 13, 15:11    [14400299]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
молоко
спасибо, да, не хватало AS:)
все сделалось.
а почему нельзя повторять столбцы, на пример для того что бы что то сравнить и просто сделать немного визуально удобней?
к примеру если бы было вот так:

use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, c.rabota1, a.god, c.rabota2
from a, c
where a.code = c.code
GO

god - повторяется, и MS SQL выдает ошибку
это возможно обойти?

declare @a table (a varchar(1))
insert into @a
select 'f'

SELECT f.a,f.a FROM @a f

Вы уверены, что правильно пишете?? Какая ошибка?
6 июн 13, 15:15    [14400327]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
молоко
спасибо, да, не хватало AS:)
все сделалось.
а почему нельзя повторять столбцы, на пример для того что бы что то сравнить и просто сделать немного визуально удобней?
к примеру если бы было вот так:

use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, c.rabota1, a.god, c.rabota2
from a, c
where a.code = c.code
GO

god - повторяется, и MS SQL выдает ошибку
это возможно обойти?


давайте угадаю про ошибку, сервер пишет "внимание! выдаю ошибку!"
6 июн 13, 15:15    [14400331]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
молоко
Guest
iiyama
молоко, и в топку from a,b where

use toy_base
GO
CREATE VIEW svod
as
select a.name, a.god, b.rabota
from a
	inner join b on a.code = b.code

натолкнуло меня на вопрос)
вот то что я делаю это называется декартовым произведением\перекрестным соединением?
это нежелательно в запросах, т.к. страдает скорость запросов? правильно понимаю?
6 июн 13, 15:16    [14400336]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Winnipuh
молоко
god - повторяется, и MS SQL выдает ошибку
это возможно обойти?


давайте угадаю про ошибку, сервер пишет "внимание! выдаю ошибку!"

)))) Он просто выдаёт ошибку, через CD-ROM) Выдвигается и там ошибка
6 июн 13, 15:16    [14400337]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Сергей Викт.
Winnipuh
пропущено...


давайте угадаю про ошибку, сервер пишет "внимание! выдаю ошибку!"

)))) Он просто выдаёт ошибку, через CD-ROM) Выдвигается и там ошибка
Всё проще.
Все поля VIEW подобно полям таблицы должны иметь уникальные имена.
Иначе было бы невозможно обратиться к конкретному полю VIEW.
То же самое относится к производным таблицам, функциям, CTE и т.д.
6 июн 13, 15:19    [14400367]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
молоко
Guest
Winnipuh
молоко
спасибо, да, не хватало AS:)
все сделалось.
а почему нельзя повторять столбцы, на пример для того что бы что то сравнить и просто сделать немного визуально удобней?
к примеру если бы было вот так:

use toy_base
GO
CREATE VIEW svod AS
select a.name, a.god, c.rabota1, a.god, c.rabota2
from a, c
where a.code = c.code
GO

god - повторяется, и MS SQL выдает ошибку
это возможно обойти?


давайте угадаю про ошибку, сервер пишет "внимание! выдаю ошибку!"



Msg 4506, Level 16, State 1, Procedure svod, Line 2
Имена столбцов в каждом представлении или функции должны быть уникальными. Имя столбца "god" в представлении или функции "svod" указано несколько раз.
6 июн 13, 15:19    [14400371]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
молоко
Winnipuh
пропущено...


давайте угадаю про ошибку, сервер пишет "внимание! выдаю ошибку!"



Msg 4506, Level 16, State 1, Procedure svod, Line 2
Имена столбцов в каждом представлении или функции должны быть уникальными. Имя столбца "god" в представлении или функции "svod" указано несколько раз.

ну вот вы и ответили на вопрос. Добавляйте алиасы и будет вам счастье
6 июн 13, 15:20    [14400374]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
молоко
iiyama
молоко, и в топку from a,b where

use toy_base
GO
CREATE VIEW svod
as
select a.name, a.god, b.rabota
from a
	inner join b on a.code = b.code

натолкнуло меня на вопрос)
вот то что я делаю это называется декартовым произведением\перекрестным соединением?
это нежелательно в запросах, т.к. страдает скорость запросов? правильно понимаю?


http://msdn.microsoft.com/ru-ru/library/ms177634(v=sql.100).aspx

CROSS JOIN
Указывает перекрестное произведение двух таблиц. Возвращает те же строки, что и соединение без предложения WHERE в старом режиме, не совместимом с SQL-92.
6 июн 13, 15:21    [14400381]     Ответить | Цитировать Сообщить модератору
 Re: CREAT VIEW  [new]
молоко
Guest
всем большое спасибо
6 июн 13, 15:23    [14400389]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить