Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> имена столбцов для возврата переменной из процедур 
:(
    Опции темы
gambit
Дата 18.3.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Может кривое название. Суть такова
Код

SELECT [Name] ,@mail и т.д.

все работает ок, но поле которое хранит ящик, называется "(отсутствует имя столбца)"
как ему назначить имя?
PM MAIL ICQ Skype   Вверх
Akina
Дата 18.3.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Имена таблиц и полей возьми в квадратные скобки

Добавлено через 1 минуту и 20 секунд
А вообще использовать в именах не-альфа символы есть моветон.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gambit
Дата 18.3.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(Akina @  18.3.2010,  17:41 Найти цитируемый пост)
Имена таблиц и полей возьми в квадратные скобки

Добавлено через 1 минуту и 20 секунд
А вообще использовать в именах не-альфа символы есть моветон. 

Не, согласен что криво описал вопрос, @mail это переменная, возвращается значение поля таблицы и переменная
PM MAIL ICQ Skype   Вверх
Akina
Дата 18.3.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Давай всю процедуру или хотя бы существенные её части, достаточные для воспроизведения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gambit
Дата 18.3.2010, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Код

USE [ASPNETDB.MDF]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UserInfo] 
    @name nvarchar(128)
AS
BEGIN

declare @id uniqueidentifier
SET @id = (SELECT UserId FROM aspnet_Users WHERE UserName=@name)

DECLARE @mail nvarchar(100)
SET @mail = (SELECT LoweredEmail FROM aspnet_Membership WHERE UserId=@id)

SELECT [Name]
      ,[Surname]
      ,[Patronymic]
      ,[ReceiveNews]
      ,[OrderReception]
      ,[idCompany]
      ,@mail
  FROM Users_Info
  Where
  UserName = @name
END



Добавлено через 9 минут и 25 секунд
Мне только что сказали что есть такая конструкция - JOIN, она позволяет решить мою проблему нормальным путем. Подскажите как это сделаьт?
PM MAIL ICQ Skype   Вверх
Akina
Дата 18.3.2010, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Ну-ну... у тебя в переменной @mail оказывается целый набор записей. И неважно, что одна запись и одно поле - всё равно это набор записей, а не значение этого поля. И в качестве имени столбца оно никак не годится.

Цитата(gambit @  18.3.2010,  19:26 Найти цитируемый пост)
Мне только что сказали что есть такая конструкция - JOIN, она позволяет решить мою проблему нормальным путем. Подскажите как это сделаьт? 

Структуру исходных таблиц и вменяемое описание того, что требуется получить - в студию.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gambit
Дата 18.3.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(Akina @  18.3.2010,  18:52 Найти цитируемый пост)
Структуру исходных таблиц и вменяемое описание того, что требуется получить - в студию. 


Код

/****** Object:  Table [dbo].[aspnet_Users]    Script Date: 03/18/2010 20:36:08 ******/
CREATE TABLE [dbo].[aspnet_Users](
    [ApplicationId] [uniqueidentifier] NOT NULL,
    [UserId] [uniqueidentifier] NOT NULL,
    [UserName] [nvarchar](256) NOT NULL,
    [LoweredUserName] [nvarchar](256) NOT NULL,
    [MobileAlias] [nvarchar](16) NULL,
    [IsAnonymous] [bit] NOT NULL,
    [LastActivityDate] [datetime] NOT NULL


Код

/****** Object:  Table [dbo].[aspnet_Membership]    Script Date: 03/18/2010 20:37:14 ******/
CREATE TABLE [dbo].[aspnet_Membership](
    [ApplicationId] [uniqueidentifier] NOT NULL,
    [UserId] [uniqueidentifier] NOT NULL,
    [Password] [nvarchar](128) NOT NULL,
    [PasswordFormat] [int] NOT NULL,
    [PasswordSalt] [nvarchar](128) NOT NULL,
    [MobilePIN] [nvarchar](16) NULL,
    [Email] [nvarchar](256) NULL,
    [LoweredEmail] [nvarchar](256) NULL,
    [PasswordQuestion] [nvarchar](256) NULL,
    [PasswordAnswer] [nvarchar](128) NULL,
    [IsApproved] [bit] NOT NULL,
    [IsLockedOut] [bit] NOT NULL,
    [CreateDate] [datetime] NOT NULL,
    [LastLoginDate] [datetime] NOT NULL,
    [LastPasswordChangedDate] [datetime] NOT NULL,
    [LastLockoutDate] [datetime] NOT NULL,
    [FailedPasswordAttemptCount] [int] NOT NULL,
    [FailedPasswordAttemptWindowStart] [datetime] NOT NULL,
    [FailedPasswordAnswerAttemptCount] [int] NOT NULL,
    [FailedPasswordAnswerAttemptWindowStart] [datetime] NOT NULL,
    [Comment] [ntext] NULL


Код

/****** Object:  Table [dbo].[Users_Info]    Script Date: 03/18/2010 20:38:56 ******/
CREATE TABLE [dbo].[Users_Info](
    [UserName] [nvarchar](256) NOT NULL,
    [Name] [nvarchar](50) NULL,
    [Surname] [nvarchar](50) NULL,
    [Patronymic] [nvarchar](50) NULL,
    [ReceiveNews] [bit] NULL,
    [OrderReception] [int] NULL,
    [idCompany] [int] NOT NULL


Необходимо по имени пользователя UserName(имя уникально), выбрать инфу из таблицы Users_Info, а так же почтовый ящик из таблицы aspnet_Membership, для этого:
получаем имя пользователя, из таблицы aspnet_Users по имени получаем ID, далее по id из таблицы aspnet_Membership получаем mail. Потом объеденияем информацию из таблицы Users_Info и mail полученный из таблицы aspnet_Membership.

Не спрашивай откуда такая кривость, объединяю свою базу, с куском базы написанной microsoft, косяков в обеих дофига, вот объединяю))
PM MAIL ICQ Skype   Вверх
Akina
Дата 18.3.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Код

select aspnet_Users.*
      ,aspnet_Membership.*
      ,Users_Info.*
from  aspnet_Users
join  aspnet_Membership
   on aspnet_Users.UserId = aspnet_Membership.UserId 
join  Users_Info
   on Users_Info.UserName = aspnet_Users.UserName 
where Users_Info.UserName = 'Иванов Иван Иванович'


Добавлено через 1 минуту и 22 секунды
Это при условии что я верно понял связи таблиц. Потому как ты их указать (в общепринятом варианте "Поле xxx таблицы YYY соответствует полю ZZZ таблицы TTT, а поле ...") не удосужился.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gambit
Дата 18.3.2010, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Akina, да, все ок. Чуть чуть подправил под свои нужды, а так, все работает. Спасибо.
PM MAIL ICQ Skype   Вверх
Deniz
Дата 19.3.2010, 07:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 1
Всего: 44



gambit, на будущее, если потребуется (переменной/полю/агрегату и т.д.) присвоить имя в выходном select'е нужно:
Код
SELECT [Name] ,@mail as UserMail и т.д.



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
gambit
Дата 19.3.2010, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Deniz, спасибо огромное, это то что требовалось изначально)))
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.