Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 August 25

А

Андрій in SqlCom.ru - Стиль жизни SQL
Yura
Всем привет. У меня есть таблица Student(id,name,age)
Я хочу сделать процедуру, которая принимает стрінг как квери в селект
exect myProcedure 'id,age'
и процедура должна вивести только id,age

Тоесть должно виполниться select id,age
create procedure myProcedure @Query  varchar(max)
AS
select
 @Query
from mytable
так не канает
create procedure myProcedure @Query  varchar(max)
AS
begin
declare @sql nvarchar(max)
set @sql =
' select
'+ @Query +'
from mytable '
exec (@sql)
end
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
это прям 100% дыра для SQL Injection
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
прям бест-практис для ворст-практис
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Помогите плиз запрос составить,
Есть две таблицы , нужно сджойнить по storekey и Если возможно по TSSID .
Вот к примеру в результате storekey 1 первая строчка сопоставляется, а вторая нет, но выводится...
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
karb0f0s
это прям 100% дыра для SQL Injection
ну это да..
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Андрій
Помогите плиз запрос составить,
Есть две таблицы , нужно сджойнить по storekey и Если возможно по TSSID .
Вот к примеру в результате storekey 1 первая строчка сопоставляется, а вторая нет, но выводится...
че то типа такого сделал, но это естественно совсем не правильно )
with c1 as (
select *,ROW_NUMBER() over(partition by storekey order by tssid)rn from (values
(1,1),(1,2),(2,1),(2,2),(3,1)
)v(storekey,tssid)
)
,c2 as (
select *,ROW_NUMBER() over(partition by storekey order by tssid)rn from (values
(1,1),(1,3),(2,1),(2,2),(4,5)
)v(storekey,tssid)
)

select  *from c1
full join c2 on c1.storekey = c2.storekey and  c1.rn=c2.rn
order by 1,2,3,4
источник

Y

Yura in SqlCom.ru - Стиль жизни SQL
Андрій
create procedure myProcedure @Query  varchar(max)
AS
begin
declare @sql nvarchar(max)
set @sql =
' select
'+ @Query +'
from mytable '
exec (@sql)
end
а если мне еще нужно передать age в сторку, как мне привесть типи?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Yura
а если мне еще нужно передать age в сторку, как мне привесть типи?
Что? Какие типы?
источник

E

Evivan in SqlCom.ru - Стиль жизни SQL
CAST(@ageAS VARCHAR(10))
источник

Y

Yura in SqlCom.ru - Стиль жизни SQL
tinyint не приводиться к varchar
create procedure SelectFromStudent
(
@Query  varchar(max),
@TblName varchar(50),
@Age  tinyint
)
AS



declare @sqlQuery varchar(300);

set @sqlQuery='select ' + @Query +' From '+ @TblName+' Where Age='+@Age);
источник

Y

Yura in SqlCom.ru - Стиль жизни SQL
exec SelectFromStudent @Query, @TblName, Cast(@Age as varchar(50))
источник

Y

Yura in SqlCom.ru - Стиль жизни SQL
не канает
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Yura
exec SelectFromStudent @Query, @TblName, Cast(@Age as varchar(50))
Так не тут блин
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
А в запросе
источник

E

Evivan in SqlCom.ru - Стиль жизни SQL
в данном случае  не канает, а при создании строки запроса канает
источник

Y

Yura in SqlCom.ru - Стиль жизни SQL
спасибо большое)
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Андрій
Помогите плиз запрос составить,
Есть две таблицы , нужно сджойнить по storekey и Если возможно по TSSID .
Вот к примеру в результате storekey 1 первая строчка сопоставляется, а вторая нет, но выводится...
вот чуствую решение гдето на поверхности но не могу дойти к нему
источник

E

Evivan in SqlCom.ru - Стиль жизни SQL
не возвращает ничего?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Evivan
не возвращает ничего?
та как, возвращает, но не то)
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
по rn если джойнить получается возможна такая ситуация.
Вот в 5 и 6 строчки не совпадение, их нужно както свапнуть
источник