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.
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.
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..........
??? 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
Mal ne Frage : Wo führst du dein SQL aus???
Gruss
Markus
Hallo!
Ich habe einfach die *.sql-Datei bekommen, die ich durch doppelklick auf dem SQL Server 2005 ausführen sollte.
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