none
T-SQL массив - неясно RRS feed

  • Вопрос

  • Приветствую =)

    Интересует запрос к таблице, который предполагает на возврате строго один ряд.

    Вот например я писал :

    @loginvar=SELECT login from reg where login = @login

    @passwordvar=SELECT password FROM reg WHERE password=@password

    А хотелось бы в один запрос все типа

    array=SELECT login,password,name,l_name FROM reg WHERE login = @login AND password=@password

    Но как-то не нашел информации как на t-SQL такое проделывать :( Подскажите можно ли в tsql использовать массивы и если да, то как?

    Заранее спасибо за полезные комментарии

    • Перемещено SachinW 2 октября 2010 г. 0:14 MSDN Forums Consolidation (От:SQL Server для разработчиков)
    4 сентября 2010 г. 21:23

Ответы

Все ответы

  • В T-SQL нет такого понятия как array.

    select @Login = Login, @Password = Password, @Name = l_name from reg where Login = @Login and Password = @Password

    http://www.sommarskog.se/arrays-in-sql.html

     


    Premature optimization is the root of all evil in programming. (c) by Donald Knuth

    Naomi Nosonovsky, Sr. Programmer-Analyst

    My blog
    • Предложено в качестве ответа Alexey KnyazevModerator 5 сентября 2010 г. 5:22
    • Помечено в качестве ответа I.Vorontsov 7 сентября 2010 г. 4:54
    • Снята пометка об ответе andrewmorozov 7 сентября 2010 г. 19:16
    • Помечено в качестве ответа andrewmorozov 8 сентября 2010 г. 17:07
    5 сентября 2010 г. 3:55
  • Array - англ. массив :)

    В этом смысле я хотел сказать...

    Меня интересует можно ли одним запросом получить перечень данных. Насчет таблиц - это я уже понял - спасибо.

    Но вот интересует фаза № 2, а именно

    1) Точно известно, что запрос

    Table table1=SELECT login,password,name,l_name FROM reg WHERE login = @login AND password=@password

    возвращяет таблицу в ОДНУ строку. Возникает вопрос

    2) Как извлечь переменную из каждого столбца table1, чтобы можно было произвести INSERT например в таком направлении

    INSERT INTO tableX(login,password,name)

    VALUES(table1[0],table1[1],table[2])

    ?

     

    7 сентября 2010 г. 19:32
  • insert into tablex (Login, Password, Name)

    select Login, Password, Name from Logins where Password = @Password and Login = @Login

     


    Premature optimization is the root of all evil in programming. (c) by Donald Knuth

    Naomi Nosonovsky, Sr. Programmer-Analyst

    My blog
    7 сентября 2010 г. 20:28
  • Array - англ. массив :)

    В этом смысле я хотел сказать...

    Меня интересует можно ли одним запросом получить перечень данных. Насчет таблиц - это я уже понял - спасибо.

    Но вот интересует фаза № 2, а именно

    1) Точно известно, что запрос

    Table table1=SELECT login,password,name,l_name FROM reg WHERE login = @login AND password=@password

    возвращяет таблицу в ОДНУ строку. Возникает вопрос

    2) Как извлечь переменную из каждого столбца table1, чтобы можно было произвести INSERT например в таком направлении

    INSERT INTO tableX(login,password,name)

    VALUES(table1[0],table1[1],table[2])

    ?

     


    Вам же показали как извлекать все пар-ры в переменные, если возвращается одна запись по условию
    http://www.t-sql.ru
    8 сентября 2010 г. 13:15
    Модератор
  • В T-SQL нет такого понятия как array.

    select @Login = Login, @Password = Password, @Name = l_name from reg where Login = @Login and Password = @Password

    http://www.sommarskog.se/arrays-in-sql.html

     


    Premature optimization is the root of all evil in programming. (c) by Donald Knuth

    Naomi Nosonovsky, Sr. Programmer-Analyst

    My blog

    То есть через "=" и все? Спасибо - понял, но запись немного необычная :) 
    8 сентября 2010 г. 17:06