Laden...

Tabellen anlegen auf dem SQL 2005

Erstellt von f.ritz vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.143 Views
f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 17 Jahren
Tabellen anlegen auf dem SQL 2005

Hallo zusammen!

Ich habe folgendes Problem:
Blöd von mir! Ich habe versucht Tabellen anzulegen in einer Datenbank die gar nicht existiert und zwar wie folgt:
CREATE TABLE [dbo].[ALERT](
[Subject] nvarchar NOT NULL, .....

Dann habe ich die Datenbank erstmal angelegt und nochmal versucht:
CREATE TABLE [dbo].[ALERT](
[Subject] nvarchar NOT NULL, .....

Nun bekomme ich folgende Fehlermeldung:
There is already an object named 'ALERT' in the database.

Was muss ich machen? Es scheint so dass irgendwelche Einträge in Systemtabellen gemacht wurden, denn die Datenbank ist komplett Jungfräulich.

M
53 Beiträge seit 2006
vor 17 Jahren

Hi f.ritz,
bist du sicher das du deine neue Datenbank auch verwendest???
Probier mal ein " select * from master..[alert] "! Wenn du da deine Spalten siehst dann ist die Tabelle in der Datenbank master gelandet.
Die Tabelle kannst du ja dann mit drop table [alert] wieder rauswerfen.

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 17 Jahren

Danke!

Das Problem gelöst und wenn wir schon dabei sind, möchte ich eine weitere Frage Stellen. Wenn ich folgendes ausführe:

DECLARE @database nvarchar(255)
DECLARE @user nvarchar(255)
DECLARE @JobName varchar(100);

BEGIN

SET @database = 'DB'
SET @user = 'DOMAIN\User'

/*** CREATE TABLE ALERT ***/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[ALERT](
	[Subject] [nvarchar](255)  NOT NULL,.....)
 CONSTRAINT [PK_ALERT] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]................

Dann bekomme ich folgende Fehlermeldung:

Msg 21147, Level 16, State 1, Procedure sp_MSCheckmergereplication, Line 12
The 'master' database is not published for merge replication.
Msg 18757, Level 16, State 1, Procedure sp_MSrepl_addpublication_snapshot, Line 66
Unable to execute procedure. The database is not published. Execute the procedure in a database that is published for replication..........

M
53 Beiträge seit 2006
vor 17 Jahren

??? Was du da machst ist Code einer Stored-Procedure!
Wenn du ein einfaches SQL-Script ausführen möchstes welches deine Zieldatenbank verwendet dann sieht das so ähnlich aus :

use DB
go

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].ALERT
go

...... usw ....

Die Befehle :

DECLARE @database nvarchar(255)
DECLARE @user nvarchar(255)
DECLARE @JobName varchar(100);
--> deklarieren in einer Stored-Procedure Variablen!

SET @database = 'DB'
SET @user = 'DOMAIN\User'
--> und setzen diese

Damit wird NICHT die DB gesetzt und auch nicht der User
mit dem die Anweisungen ausgeführt werden sollen!

Gruss
Markus

M
53 Beiträge seit 2006
vor 17 Jahren

Mal ne Frage : Wo führst du dein SQL aus???
Gruss
Markus

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 17 Jahren

Hallo!

Ich habe einfach die *.sql-Datei bekommen, die ich durch doppelklick auf dem SQL Server 2005 ausführen sollte.

M
53 Beiträge seit 2006
vor 17 Jahren

Hi f.ritz,
Hast du die Management Console des SQL Servers installiert?? Bei der Express Variante gibt es sowas auch (SQL Server Management Studio Express CTP).
Dann die Datenbank in der linken Auswahl aufrufen und "New Query"... danach sollte ein SQL-Editor Fenster aufgehen wo du dein SQL-Script reinladen kannst.

So kannst du dann schonmal sicherer sein das dein Script in der richtigen DB ausgeführt wird. Wenns dann immer noch schief geht denjenigen Fragen der dir das Script gegeben hat.

gruss
Markus