Ошибка нечетной хранимой процедуры - синтаксис? - PullRequest
0 голосов
/ 19 ноября 2011

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

Обе таблицы имеют одинаковую структуру. tbl_Users_non_61 пусто и готово к получению данных.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE Make_WEEKLY_SUMMARY 
AS
BEGIN
   SET NOCOUNT ON;
   Select (tbl_Users.UserID
      , tbl_Users.RegistrationType
      , tbl_Users.Datecompleted)
   INTO tbl_Users_non_61  
   FROM 
   SELECT tbl_Users.UserID
      , tbl_Users.RegistrationType
      , tbl_Users.Datecompleted
   FROM tbl_Users;
END
GO

Результирующая ошибка:

Сообщение 102, Уровень 15, Состояние 1, Процедура Make_WEEKLY_SUMMARY, Строка 5
Неверный синтаксис рядом с ','. **

Ответы [ 2 ]

3 голосов
/ 19 ноября 2011

Поскольку вы просто хотите вставить записи в одну таблицу из другой, существует более понятный синтаксис:

INSERT INTO tbl_Users_non_61(UserId, RegistrationType, DateCompleted)
SELECT u.UserID, u.RegistrationType, u.Datecompleted
FROM tbl_Users AS u

Чтобы ответить на ваш вопрос, вам не нужно ( ) вокруг первого выбора,но они НЕОБХОДИМО, чтобы они были рядом с вашим подвыбором, затем вам нужно присвоить псевдониму подзапрос, на который вы ссылаетесь, с помощью FROM:

Select t.UserID, t.RegistrationType, t.Datecompleted
INTO tbl_Users_non_61
FROM 
(
   SELECT u.UserID, u.RegistrationType, u.Datecompleted
   FROM tbl_Users AS u
) as t;
1 голос
/ 19 ноября 2011

Попробуйте это на:

SELECT
    tbl_Users.UserID
  , tbl_Users.RegistrationType
  , tbl_Users.Datecompleted 
INTO tbl_Users_non_61  
FROM tbl_Users;

Когда вы SELECT ... INTO, если столбцы взяты только из одной таблицы, нет необходимости SELECT эти же столбцы снова.Даже если бы вам пришлось брать данные из нескольких столбцов, вам все равно не нужно их повторно выбирать и вместо этого выполнять объединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...