Hej Om det kan vara till någon hjälp så ser autogenererade script ut såhär, den delen som "droppar" tabellen om den existerar: Jag vet... automatgenererade scriptet jag tänkte använda för att lägga Eftersom GO avslutar batchen så kan det som du säger inte finnas inuti ett if-block. Om du nödvändigtvis måste köra en egen batch inuti if-blocket (du måste inte ha GO efter CREATE TABLE) så kan du exekvera den med sp_executesql, vilken exekveras i en egen batch.BEGIN i query
Har en query som vägrar acceptera ett begin.
Har en ifsats och efterföljande ska bara göras om satsen är sann - därav
BEGIN. Dock tillåter den inte BEGIN (testat mig fram till att det är den
raden som inte tillåts) och protesterar högljutt med
Line 31: Incorrect syntax near 'PRIMARY'.
Det jag vill göra är att skapa en tabell om den inte redan finns. Detta ska
ligga i ett script som bara går att köra på vilken databas som helst
oavsett när den var uppdaterad senast. Detta gör att jag lagt in en
kontroll som tittar på om tabellen finns eller ej, finns den ej ska den
skapas. Har även försökt droppa den innan, men det vill sig inte heller.
Tror att det har något att göra med att det finns GO efter några av mina
satser. Någon som vet hur man kan göra för att komma runt detta
problem?
Är en omskrivning nödvändig?
/EmmaSv: BEGIN i query
if exists (select * from dbo.sysobjects where id = object_id(N'[ägare].[address]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [ägare].[address]
GO
/JohanSv: BEGIN i query
upp tabellen. Onödigt att göra det för hand mer än en gång...
Inte det som är problemet. Problemet är att man kan inte använda
GO innanför ett BEGIN...END uttryck och det måste jag göra för att det
ska fungera som det är tänkt.
/Emma
<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
Jag har löst det hela på ett annat sätt, men om det är
någon som har ett förslag på hur man kan göra så är
det hjärtligt välkommet!
/ESv: BEGIN i query