Archiv für die Kategorie ‘SQL Server’

SQLServer owner bzw. schema einer Tabelle ändern

Donnerstag, 02. September 2010

Heute war mal ein schöner Tag!!!!

Wir haben gerade eine Datenbank in einen neu installierten SQL-Server eingelesen.

Und versucht mit dem Kassen-Programm Oscar drauf zu zugreifen.
Das Problem war das Oscar immer meinte die Tabelle “ProcUnit” sei nicht vorhanden.

Nach langen hin und her (Datenbank Konvertieren und wieder einlesen) haben wir dann heraus gefunden das, weil die Tabellen nicht das Schema “dbo” hatten, sondern auf das Schema ein Benutzer war, Oscar nicht auf die Datenbank zugreifen konnte.

Als erste habe ich erst mal bei Google ein wenig geschaut ob man nicht was Sinnvolles findet um das Schema bzw. den Owner einer Tabelle zu ändern.

Gefunden habe ich auch was:
z.b.

1
sp_changeobjectowner(Tabelle, User)

und noch mehr Skripte, aber das alles wollte nicht so ganz funktionieren.

Die Fehlermeldung war immer:
Objekt ungültig oder konnte in der Datenbank nicht gefunden werden.

Also weiter suchen ;)
Dann habe ich was Schönes gefunden:

(weiterlesen…)

vb.net compact Framework winCE sqlceexpection

Dienstag, 23. März 2010

ich bin gerade ein bisschen am basteln mit WinCE und einer sdf-datenbank.
Und jetzt habe ich ein paar Daten in die Datenbank eingelesen und bekomme beim Select mit where eine SqlCeException.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Source:
"SQL Server Compact ADO.NET Data Provider"
 
StackTrace:
 at System.Data.SqlServerCe.SqlCeDataReader.ProcessResults(Int32 hr)
   at System.Data.SqlServerCe.SqlCeDataReader.IsEndOfRowset(Int32 hr)
   at System.Data.SqlServerCe.SqlCeDataReader.Move(DIRECTION direction)
   at System.Data.SqlServerCe.SqlCeDataReader.Read()
   at System.Data.ProviderBase.DataReaderContainer.Read()
   at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)

Habe aber die Lösung relative schnell finden können.

Ich habe im Select in einem nvarchar feld gesucht und habe die ‘ zeichen um den wert vergessen

z.b.
Select artikel from tbl_artikel where artikel = ’123456′;

MS SQL gespeicherte Prozedur Array while loop schleife

Montag, 08. Februar 2010

Ich hatte das vergnügen ein wenig mit den „gespeicherten Prozeduren“ vom MS Sql-Server zu spielen ;)

Hier mal ein Beispiel Scenario:
Aufgabe war es aus einem Text mit Simicolon getrennten Werten, jeden einzelt in eine Tabelle zu schreiben.

Also als eingangs Parameter haben wir die Variable @temp_ID

@temp_ID hat den Wert: 1423,5895,4578,2248

Gelöst habe ich das so:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE PROCEDURE [dbo].[sp_test_insert]
	-- Add the parameters for the stored procedure here
	@temp_ID varchar(8000)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    	-- Insert statements for procedure here   
 
	DECLARE @ID varchar(10), @Pos int
 
	SET @temp_ID = LTRIM(RTRIM(@temp_ID))+ ','
	SET @Pos = CHARINDEX(',', @ temp_ID, 1)
 
	IF REPLACE(@temp_ID, ',', '') <> ''
	BEGIN
	    WHILE @Pos > 0
	    BEGIN
                SET @ID = LTRIM(RTRIM(LEFT(@temp_ID, @Pos - 1)))
 
		IF @ID <> ''
		BEGIN
		    INSERT INTO Table1 ([ID]) VALUES (@ID)
 
		END -- IF @ID <> ''
 
		SET @ temp_ID = RIGHT(@temp_ID, LEN(@temp_ID) - @Pos)
		SET @Pos = CHARINDEX(',', @ temp_ID, 1)
 
	    END -- WHILE @Pos > 0
 
	END	-- IF REPLACE(@temp_ID, ',', '') <> ''
 
END

Aus Visio .vsd Datenbank Model ein SQL Script erstellen

Donnerstag, 05. März 2009

man man man mich will man zwischendurch auch ärgern denke ich.
Da fange ich schön an mein Datenbank Model für das DataWareHouse in Visio aufzubauen weil ich nach einer günstigen möglichkeit gesucht habe dieses zutun. Da habe ich das schöne Template in Visio gefunden.
Nun habe ich meine erste Datenbank erstell und alle Datentypen eingetragen.
Da dachte ich mir mal kannste bestimmt schnell mal in meinen Microsoft SQL 2005 Server laden. Aber falsch gedacht.
Geht nicht! Weil bei der Professional Version von Visio kein Forward Engineering gibt. AHHH!

Also gleich erst mal an google gesetzt und gesucht und dachte da gibt es bestimmt massen haft Programme aber nein ich habe nur ein eiziges gefunden aber das hat auch gereicht :)

http://www.orthogonalsoftware.com/products.html

Mit deisem schönen addin kann man sich sein Datenbank Model als XML ausgeben.

Habe auch noch zwei schöne Seiten gefunden auf den das Arbeiten damit beschrieben wird echt klasse.

http://www.dougboude.com/blog/1/2008/11/SQL-Forward-Engineering-with-Visio-2003-Professional.cfm

http://blog.donnfelker.com/post/Simplifying-Database-Modeling-in-Visio-20022003-through-SQL-Generation.aspx

Google Tags:

datenbank modell erstellen
visio to sql

Microsoft SQL-Server 2005 Indexe einer Tabelle auflisten

Freitag, 30. Januar 2009

habe lange gesucht aber man muss nur die richtige Tabelle nehmen. Ich habe die ganze Zeit in der INFORMATION_SCHEMA Tabelle geguckt dabei stehen die Indexe da nicht.
Sondern in der Sys-Datenbank.

Auslesen aller Indexe der Datenbank:

select * from sys.indexes;

Microsoft SQL Server 2005 Fehlermeldung 18452

Montag, 26. Januar 2009

Da wir jetzt ein BO (Business Objects) bekommen.

Habe ich mich mal ein wenig an MSSQL Server benutzer anlage versucht.

Das Anlegen und einrichten ist ja nicht schwer, aber wenn man dann immer eine Fehlermeldung bekommt und sie nicht zu ordnen kann ist das schon nervig.

Fehler bei der Anmeldung für den Benutzer ‘%user%’. Der Benutzer ist keiner vertrauenswürdigen SQL Server-Verbindung zugeordnet.

oder

Meldung ’18452′ , Ebene 14 , Status ’1′ , Server ‘*’ , Zeile 1 ‘
Fehler bei der Anmeldung für den Benutzer ‘%user%’. Der Benutzer ist keiner vertrauenswürdigen SQL Server-Verbindung zugeordnet.

Diese Fehlermeldung soll nur aussagen das es keinen SQL-Benutzer gibt der so heißt.

Microsoft-Link: Link

MSSQLSERVER – Kann Benutzerstandarddatenbank nicht öffnen

Mittwoch, 05. November 2008

das ist mit das Schlimmste was einem beim SQL-Server passieren kann wenn man am Anfang steht und testet.Weil alles nicht mehr so funktioniert wie man will, und dann deaktiviert man die Haupt-Datenbank.danach kann man sich auf ein mal nicht mehr Anmelden und der User: sa ist auch deaktiviert.

also ALLES SCHEISSE und man kann die ganze Instanz löschen.

Aber ich hab es geschafft sie zu reaktivieren. *wuhu*

Fehlermeldung:

SQL 2005
Kann sich nicht mit Server-Name verbinden
WEITERE INFORMATIONEN:
Kann Benutzerstandarddatenbank nicht öffnen. Anmeldung fehlgeschlagen Anmeldung schlug bei Benutzer ” Username” Fehl. ( Microsoft SQL Server, Fehler: 4064 )

Lösung:

(weiterlesen…)