Reklama: GRATIS wycena pozycjonowania strony , KLIKNIJ !

Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Bartłomiej Ząbecki Student,
Politechnika
Łódzka

Temat: SQL DYNAMICZNY

Witam wszystkich używam dynamicznego SQL aby uaktualniać rekordy w tabeli, niestety generuje mi się błąd:

The name 'UPDATE [ZBIOR TESTOWY STAND]SET[Clump Thickness]='2.6444990585' WHERE ID=1' is not a valid identifier.

Poniżej kod którego używam:

DECLARE @POMOC2 AS DECIMAL(18,10)

SET @POMOC2=(((SELECT WARTOSC FROM POMOCNICZA2)-@SREDNIA)/@ODCHYLENIE)

SET @UAKTUALNIJ =N'UPDATE [ZBIOR TESTOWY STAND]'
+N'SET'+QUOTENAME( @NAZWA_TESTOWY)+N'=
'+QUOTENAME(@POMOC2,'''')
+N' WHERE ID='+CONVERT(VARCHAR(20),@NR_REK_TEST)
EXEC @UAKTUALNIJ


Może ktoś już spotkał się z tego typu błędem i mi pomożeBartłomiej Ząbecki edytował(a) ten post dnia 04.02.12 o godzinie 23:32
4.02.2012, 23:29

Temat: SQL DYNAMICZNY

zamiast exec daj PRINT i pokaż co ci wyskoczy w Menagment studio
5.02.2012, 00:57

Paweł B. architekt baz danych

Temat: SQL DYNAMICZNY

EXEC (@UAKTUALNIJ )
Nawiasy!!!
5.02.2012, 09:43

Bartłomiej Ząbecki Student,
Politechnika
Łódzka

Temat: SQL DYNAMICZNY

Procedura działa jak należy, miałem błąd we wcześniejszym kodzie +plus brak nawiasów przy EXEC dzięki.
5.02.2012, 15:49

Maciek Kański Programista C#
ASP.NET

Temat: SQL DYNAMICZNY

do dynamica zalecane jest sp_executesql wraz z odpowiednim przekazywaniem parametrów in/out. W ogólności ułatwia przekazywanie parametrów a także pozwala na użycie query planów z cache.
6.02.2012, 21:45

konto usunięte

Temat: SQL DYNAMICZNY

Dobry rozśmieszacz :)

Wanda Olek:
Witam,
mam problem z zadaniem z sql(dopiero zaczynam przygode z nim) ktos moze mi pomoze?
1. Podaj nazwiska pracowników zatrudnionych w 1981 i z stopniem płacy >= 2 i < 5.
> 2. Podaj nazwiska i ilość podwładnych kierowników.
3. Podaj nazwy departamentów w których są pracownicy nie mający zwierzchnika.
4. Podaj jaki będzie koszt podwyżki o 1000 dla każdego departamentu oprócz stanowiska
'MANAGER' .
5. Podaj nazwę departamentu, stanowisko, i nazwisko pracowników, którzy pracuje w
departamencie który zawiera 'ES' .
6. Wylicz jaki byłby koszt podwyżek płac w każdym departamencie zakładając wzrost
wynagrodzeń o 20%. Podać departament i koszt podwyżki.
7. Wybierz nazwy departamentów, stanowiska oraz nazwiska pracowników którzy pracują na
stanowiskach w których występuje ciąg MAN wynik posortować po nazwiskach
11.02.2012, 20:23

Temat: SQL DYNAMICZNY

Wanda Olek:
Witam,
mam problem z zadaniem z sql(dopiero zaczynam przygode z nim) ktos moze mi pomoze?
1. Podaj nazwiska pracowników zatrudnionych w 1981 i z stopniem płacy >= 2 i < 5.
> 2. Podaj nazwiska i ilość podwładnych kierowników.
3. Podaj nazwy departamentów w których są pracownicy nie mający zwierzchnika.
4. Podaj jaki będzie koszt podwyżki o 1000 dla każdego departamentu oprócz stanowiska
'MANAGER' .
5. Podaj nazwę departamentu, stanowisko, i nazwisko pracowników, którzy pracuje w
departamencie który zawiera 'ES' .
6. Wylicz jaki byłby koszt podwyżek płac w każdym departamencie zakładając wzrost
wynagrodzeń o 20%. Podać departament i koszt podwyżki.
7. Wybierz nazwy departamentów, stanowiska oraz nazwiska pracowników którzy pracują na
stanowiskach w których występuje ciąg MAN wynik posortować po nazwiskach

50 zł za rozwiązanie
11.02.2012, 20:44

Łukasz K. programista
ASP.NET/JS/T-SQL,
2KMM Sp z o.o.

Temat: SQL DYNAMICZNY

Wanda Olek:
Witam,
Jak by ktoś znal odpowiedzi na te 7 pytań będe wdzięczna. Szukałam ale nie znalazłam. Z góry dziękuję

Wybacz, ale umiejętność korzystania z wyszukiwarki jest obecnie umiejętnością niezbędną.
http://pl.wikipedia.org/wiki/Commit
http://pl.wikipedia.org/wiki/Rollback
http://pl.wikipedia.org/wiki/Front-end
15.02.2012, 22:10

konto usunięte

Temat: SQL DYNAMICZNY

Dlaczego moja wypowiedź została usunięta?
15.02.2012, 23:21

Bogdan Pieńkowski Konsulting,
programowanie
(.NET), analizy,
bazy danych. ...

Temat: SQL DYNAMICZNY

Wanda Olek:
Dlaczego moja wypowiedź została usunięta?

Cenzura kofana cenzura.
15.02.2012, 23:32

Paweł Kiraga Świat Office,
trener

Temat: SQL DYNAMICZNY

Nawet kilka wypowiedzi. Nie były związane w żaden sposób z tematem 'sql dynamiczny'. Jeśli nie pomagasz autorowi posta rozwiązać jego zadania, to chociaż nie utrudniaj wypowiedziami niezwiązanymi z tematem.
15.02.2012, 23:34

Paweł Kiraga Świat Office,
trener

Temat: SQL DYNAMICZNY

Bogdan Pieńkowski:
Wanda Olek:
Dlaczego moja wypowiedź została usunięta?

Cenzura kofana cenzura.

Żadna cenzura ani inna ACTA :-) Po prostu lubię, jak się szanuje czas innych, a wrzucanie swoich zadań do 'pierwszego lepszego' wątku przeczy tej regule. Przecież można założyć swój i nie ma żadnego problemu.
15.02.2012, 23:36

konto usunięte

Temat: SQL DYNAMICZNY

Ok rozumiem, a moge jakos odzyskac te pyatnia, ktore tam mialam?
15.02.2012, 23:38

Bogdan Pieńkowski Konsulting,
programowanie
(.NET), analizy,
bazy danych. ...

Temat: SQL DYNAMICZNY

Żartowałem przecież. Ale całe GL zrobiło się rekrutersko-akadmickie, więc wrzucają albo prace domowe, albo zajawki pracowe gdzie popadnie. Już mnie mdli i chyba najwyższy czas zwijać manele z tego portalu.
Wanda Olek:
Ok rozumiem, a moge jakos odzyskac te pyatnia, ktore tam mialam?

możesz patrz parę postów wyżej. Boshes

Nie to będzie za trudne masz gotowca:

1. Podaj nazwiska pracowników zatrudnionych w 1981 i z stopniem płacy >= 2 i < 5.
2. Podaj nazwiska i ilość podwładnych kierowników.
3. Podaj nazwy departamentów w których są pracownicy nie mający zwierzchnika.
4. Podaj jaki będzie koszt podwyżki o 1000 dla każdego departamentu oprócz stanowiska
'MANAGER' .
5. Podaj nazwę departamentu, stanowisko, i nazwisko pracowników, którzy pracuje w
departamencie który zawiera 'ES' .
6. Wylicz jaki byłby koszt podwyżek płac w każdym departamencie zakładając wzrost
wynagrodzeń o 20%. Podać departament i koszt podwyżki.
7. Wybierz nazwy departamentów, stanowiska oraz nazwiska pracowników którzy pracują na stanowiskach w których występuje ciąg MAN wynik posortować po nazwiskachBogdan Pieńkowski edytował(a) ten post dnia 15.02.12 o godzinie 23:46
15.02.2012, 23:41

Paweł Kiraga Świat Office,
trener

Temat: SQL DYNAMICZNY

Wanda Olek:
Ok rozumiem, a moge jakos odzyskac te pyatnia, ktore tam mialam?

Bardzo rzadko coś kasuję (przeważnie jak jest ogłoszenie rekrutacujne bez widełek) i nie archiwizuję tych postów. Wbudowane narzędzia nie mają niestety opcji odzyskiwania.
15.02.2012, 23:44

Temat: SQL DYNAMICZNY

.:
Ok rozumiem, a moge jakos odzyskac te pyatnia, ktore tam mialam?

przeczytaj posty w tym wątku!
16.02.2012, 00:09

Wojciech Gardziński AFIN.NET, trener MS
Excel, (nieco
fanatyczny) lobbysta
pr...

Temat: SQL DYNAMICZNY

Heloł.
Potrzebuję pomocy - to , jak się zapewne domyślacie - dowód desperacji z mojej strony:

Ano, próbuję zrobić takie coś - funkcję statyczną, która ma działać tak:

SELECT sqltext, MyExecuteSql(sqltext) FROM tabelka

Oczywiście z założeniem, że sqltext ma zwracać jedną wartość i gdzie sqltext to jakiś tam stos sqlków.

Próbowałem w SQLSE, ale chciałbym to robić na dowolnej bazie, więc prosiłbym o pomoc nie tylko w SQLS ale w MySQL, Oracle'u, Accessie(!)

W Accesie zrobiłem w VBA - betka. Ale jest problem - nie działa, wywołana z zewnątrz, czyli bez otwartego Accesska - czyli kicha, bo znacie moje preferencje.
Więc się czepiłem SQLSA - pogmerałem w szafie wujka Gugla i od razu znalazłem sp_executesql.
Fantastycznie - pomyślałem i zacząłem próbować tworzyć funkcje skalarną. I - kicha.

Pytanka:
1. Nie ma sp_executesql w stored procedures - i nie wiem, czy to dlatego, że mam SQL Expressa, czy też z innego powodu?
2. Tak, czy inaczej - nie przyjmuje mi nawet deklaracji funkcji, bo "nie zna takiej funkcji", a jak wpiszę to jakoś inaczej, to deklarację przyjmuje, ale nie działa. Czyli - jak to się POWINNO wpisywać?
3. Czy to, w ogóle, działa w funkcjach, bo wszystkie przykłady wujek podaje mi na procedury?
4. If 3. Then czy może też tworzyć tabele, usuwać, czyli DDLować?

CREATE FUNCTION 
dbo.MyExecuteSQL(@strSqlCommand VARCHAR(200))
RETURNS VARCHAR(200)
AS BEGIN
RETURN (sys.sp_executesql ('SELECT MAX(nazwa) FROM dbo.MyTable1'))
END


Oczywiście, docelowo, '@strSqlCommand' nie będzie sztywnym przykładem...
Pliz...
10.03.2012, 16:43

Temat: SQL DYNAMICZNY

Wojciech Gardziński:

CREATE FUNCTION 
dbo.MyExecuteSQL(@strSqlCommand VARCHAR(200))
RETURNS VARCHAR(200)
AS BEGIN
RETURN (sys.sp_executesql ('SELECT MAX(nazwa) FROM dbo.MyTable1'))
END


Oczywiście, docelowo, '@strSqlCommand' nie będzie sztywnym przykładem...
Pliz...

ALTER FUNCTION 
dbo.MyExecuteSQL(@strSqlCommand VARCHAR(200))
RETURNS VARCHAR(200)
AS BEGIN

DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);

SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(DATA) FROM dane.dbo.dic_date';
SET @ParmDefinition = N'@max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @max_titleOUT=@max_title OUTPUT;
RETURN @max_title;

END;


ale to nie zadziała!!

bo

Msg 557, Level 16, State 2, Line 1
Only functions and some extended stored procedures can be executed from within a function.
Przemysław R. edytował(a) ten post dnia 11.03.12 o godzinie 00:29
11.03.2012, 00:28

Wojciech Gardziński AFIN.NET, trener MS
Excel, (nieco
fanatyczny) lobbysta
pr...

Temat: SQL DYNAMICZNY

Przemysław R.:
Msg 557, Level 16, State 2, Line 1
Only functions and some extended stored procedures can be executed from within a function.
Dzięki.
Ale do rozwiązania nie zbliżyłem się ani o krok.
Ani sp_executesql, ani openrowset, ani openquery... :(
Czyli co, trzeba pisać triggera, który po załadowaniu tabeli w pierwszym kroku, w pętli poleci po polu tabeli, uzupełniając drugie pole? I, w drugim kroku, odczyt. Ale kicha...
Czy się gdzieś mylę?
11.03.2012, 15:01

Paweł B. architekt baz danych

Temat: SQL DYNAMICZNY

Możesz napisać funkcję CLR'ową lub zamiast funkcji wywołać procedurę która zwróci sqltext i jego wynik w jednym recordsecie.
Nie wiem co chcesz osiągnąć poza tym, że wskazałeś "przez funkcję" co jest chyba ślepym zaułkiem.
11.03.2012, 15:38



Wyślij zaproszenie do