2016-07-06 1 views
-1

Я пытаюсь создать схему представления, но попал в некоторую проблему.Неверный синтаксис рядом с ключевым словом «SCHEMA». ОШИБКА С его созданием

Не могли бы вы объяснить. Я новичок в схемах.

CREATE VIEW schema.[TEMP1_V](
LOCATION, 
OBJECTID, 
CTID, 
numb, 
COUNTALL, 
COUNTALL_DEBIT 
) 
AS SELECT 
LOCATION, 
OBJECTID, 
CTID, 
numb, 
COUNTALL, 
COUNTALL_DEBIT 
COUNT (location) OVER (PARTITION BY location) AS COUNTALL, 
COUNT (location) OVER (PARTITION BY location, IS_DEBIT) AS COUNTALL_DEBIT 
FROM ALLOCAMT_V 

Я получаю сообщение об ошибке при попытке создать его. 'Неверный синтаксис рядом с ключевым словом' SCHEMA '.'

+2

ваша схема на самом деле называется «схема»? Значение по умолчанию здесь: 'dbo' –

+0

Просто удалите 'schema.', и представление будет создано в схеме по умолчанию. – jarlh

+0

Привет, я пытался это сделать .. но не работает. – user2732656

ответ

0

Попробуйте с dbo.

dbo - это схема «Бездействие» на SQL Server. Если у вас есть собственная схема, вы можете создать этот вид с <schema_name>.[TEMP1_v]

CREATE VIEW dbo.[TEMP1_V] 
    AS SELECT 
    LOCATION, 
    OBJECTID, 
    CTID, 
    numb, 
    COUNT (location) OVER (PARTITION BY location) AS COUNTALL, 
    COUNT (location) OVER (PARTITION BY location, IS_DEBIT) AS COUNTALL_DEBIT 
FROM ALLOCAMT_V 
+0

Нужны ли нам параметры для просмотра? – Arulkumar

+0

@Arulkumar Я знал, что это необязательно. редактирование ... – Sankar

+0

@Arulkumar Но можете ли вы сказать мне, есть ли разница? – Sankar

1

Я сомневаюсь, что ваша схема на самом деле называется schema. Значение по умолчанию - dbo, так что я использовал в приведенном ниже примере. Вам также не нужно указывать свои имена полей, как есть. Вы также дублировали столбцы COUNTALL и COUNTALL_DEBIT в своем заявлении select.

CREATE VIEW dbo.[TEMP1_V] 
AS 
SELECT 
    LOCATION, 
    OBJECTID, 
    CTID, 
    numb, 
    COUNT (location) OVER (PARTITION BY location) AS COUNTALL, 
    COUNT (location) OVER (PARTITION BY location, IS_DEBIT) AS COUNTALL_DEBIT 
FROM ALLOCAMT_V 
0

Прежде всего, ваш пример начинается с этого:

CREATE VIEW 

Таким образом, не зная, как это работает, мы смотреть CREATE VIEW - MSDN со страницы MSDN Microsoft и видим следующее:

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ]) ] 
[ WITH <view_attribute> [ ,...n ] ] 
AS select_statement 
[ WITH CHECK OPTION ] [ ; ] 

<view_attribute> ::= 
{ 
    [ ENCRYPTION ] 
    [ SCHEMABINDING ] 
    [ VIEW_METADATA ]  } 

Заметим, что примеры VIEW не включают столбцы в начале раздела, поэтому мы вернемся к определениям на MSDN и увидите следующее:

SCHEMA_NAME

ли имя из schema, к которому принадлежит вид

колонка

Является ли имя, которое будет использоваться п или столбец в представлении. Имя столбца равно , которое требуется только тогда, когда столбец получен из арифметического выражения, функция или константа; когда два или более столбцов могут иметь одно и то же имя , как правило, из-за соединения; или когда столбцу в представлении указано имя, отличное от имени столбца, из которого оно получено . Имена столбцов также могут быть назначены в инструкции SELECT.

Если столбец не указан, вид столбцов приобретают те же имена, как столбцов в операторе ЗЕЬЕСТ.

UPDATE: Так есть меньше причин, чтобы определить столбцы здесь, так как ваш запрос уже делает это.

Который приносит нам эти выводы:

  • Использование MSDN для вопросов синтаксиса.
  • Укажите только столбцы в вашем представлении, если вам абсолютно необходимо.
  • Представление может быть создано только в токаdatabase
+0

скорректированный пост для ошибок. –

Смежные вопросы