webForumDet fria alternativet

Kopiera kod i SQL

6 svar · 258 visningar · startad av Eclipse

EclipseMedlem sedan juli 20003 825 inlägg
#1

Jag har en kod där jag kopierar en post genom att välja den och sen skapa en ny post utifrån dessa värden.

Finns denna möjligheten direkt i SQL?

Jag kör Access.

***
Till exempel:
1. SQL = "COPY ..."
2. SQL = "DUPLICATE ..."

LarsGMedlem sedan dec. 200012 464 inlägg
#2
insert into t_eclipse(x_c1,x_c2)
select x_c1,x_c2 from t_eclipse 
where x_pk = 4711
EclipseMedlem sedan juli 20003 825 inlägg
#3

Skönt...

EclipseMedlem sedan juli 20003 825 inlägg
#4
' ## COUNT POSTS
SQL = "SELECT COUNT(*) AS cnt FROM [tabellen];"
set mySQL = Conn.Execute(SQL)
intSortfield = mySQL("cnt") + 1

Jag har en follow-up på denna tråden.

Jag använder intSorfield för att hålla ordning på posterna, jag tror du förstår ovanstående kod.

Kan jag med hjälp av din kod skippa även detta och addera 1 i alla fall?

Till exempel:

insert into t_eclipse(x_c1,x_c2, intSortfield+1)
select x_c1,x_c2, intSortfield  from t_eclipse 
where x_pk = 4711

Öööhh... detta blir ju fel eftersom det är inte "plus ett av vald post" jag vill ha utan "plus ett av totala antalet poster"!

Kanske detta fungerar:

insert into t_eclipse(x_c1,x_c2, intSortfield )
select x_c1,x_c2, 
((SELECT COUNT(*) FROM [tabellen]) +1)
from t_eclipse 
where x_pk = 4711

Detta känns mer åt rätt håll...

Engine^Medlem sedan dec. 20003 887 inlägg
#5
INSERT INTO t_eclipse(x_c1,x_c2, intSortfield)
SELECT x_c1,x_c2, 
(SELECT (Count(*) + 1) FROM tabellen)
FROM t_eclipse 
WHERE x_pk = 4711
EclipseMedlem sedan juli 20003 825 inlägg
#6

Tack!

Din lösning är aningen snyggare.

Upplysningsvis kan jag säga att det jag skrev också fungerar....

Snyggast kåd vinner! Givetvis! ;-)

Engine^Medlem sedan dec. 20003 887 inlägg
#7

Trevligt!

130 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)