2012-06-14 2 views
-1

Я пытался создать представление и процедуру. Однако ни одно из них не может быть сделано.SQL Server 2008 создать процедуру и создать представление

Я попытался создать процедуру, как это:

create procedure name (@time) 
as 
begin 
    select tag_ID from Location where [email protected]; 
end 

create procedure name 
as 
    select tag_ID from Location where [email protected]; 
end 

Оба результата в следующей ошибки

Основная ошибка 0x80040E14, Minor Error 25501 создать имя процедуры как выберите tag_id с места где tag_ID = @ time Произошла ошибка при разборе запроса. [Знак номер строки = 1, маркер линия смещения = 8, маркера с ошибкой = процедура]

Для создания вида

create view Time as select time from Location; 

Ошибки я получил:

Основной ошибка 0x80040E14 , Незначительная ошибка 25501 создать вид Время как время выбора из местоположения Произошла ошибка при анализе запроса. [Номер линии токена = 1, смещение линии токена = 8, токен по ошибке = просмотр)

Кажется, что есть проблема с использованием CREATE, однако я не могу понять это.

Я пробовал большую часть синтаксиса, но кажется, что он не работает, большинство из них выдает ту же ошибку.

** Я использую компактную версию SQL.

ответ

1

Вам не хватает типа из параметра процедуры. Попробуйте что-то вроде этого:

CREATE procedure name (@time varchar(100)) 
AS BEGIN 
    select tag_ID from Location where [email protected]; 
END 
0

Используете ли вы Sql Server Database Engine или SQL CE? Я думаю, что вы используете SQL CE или ограниченную версию, в которой View и Procedure не разрешены;

Ref http://social.msdn.microsoft.com/Forums/uk/sqlce/thread/f6ba9114-a962-41c2-b142-448c0f427cce

+0

Спасибо. Хотя ничего нельзя сделать, это облегчило мое замешательство. :) –

+0

@NadiiLo _Are_ вы используете CE? Если это так, вы должны обновить свой вопрос, чтобы рассказать потенциальным авторам ответов, которые ... – Bridge

+0

отредактирован. Спасибо :) –

1

Ошибка Поскольку Вы не хватает datatype for procedure's parameter. Примечание. Пожалуйста, проверьте, какой тип данных вы используете. Я использую datetime здесь.

CREATE PROCEDURE Name (@time DATETIME) 
AS 
BEGIN 
    SELECT tag_id 
    FROM location 
    WHERE tag_id = @time; 
END 
+0

Ошибка все еще существует с тем же сообщением об ошибке, я попытался создать процедуру без какой-либо переменной (например, создать процедуру, как начать select tag_id из конца местоположения) –

+0

Отправьте сюда код. –

+0

@NadiiLo всякая версия кода, который вы публикуете, имеет другую синтаксическую ошибку. В том, что указано выше, у вас есть ключевое слово ** end **, но нет ** begin **. Попробуйте использовать один из ответов, размещенных здесь. – McGarnagle

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