11. Erläuterungen zur Importierung von Skripten, die von Dritten geliefert werden

Der Gebrauch von Skripten Dritter ist bei der Nutzung von Gratis-Software immer gebräuchlicher geworden.

Diesbezüglich werden im Folgenden einige Hilfestellungen gegeben, die Ihnen helfen können, bei Problemen in der Durchführung der Skripte beim Gebrauch des Panels in mssql.aruba.it Zeit zu sparen.

Diese Hilfestellungen ersparen Ihnen Probleme in Bezug auf die Größe des Skripts und die Verwaltung der Berechtigungen, die Aruba für die Nutzer einrichtet, die die Serviceleistung  MS Sql Server kaufen.

Beschreibung der Teile eines Skriptes (normalerweise Dateien mit .sql-Extension)

Ein Skript besteht normalerweise aus 3 Komponenten:

1
Der erste Teil besteht generell aus einer Reihe von Anweisungen, die dazu dienen, die eventuell bereits bestehenden Tabellen zu löschen, die Sie neu erstellen müssen.

Dieser Teil könnte, wenn die Database leer ist, ruhig weggelassen werden. Auf jeden Fall empfiehlt es sich, vor der Durchführung dieses Teils aufzupassen, ob die Namen der zu erstellenden Tabellen nicht mit bereits bestehenden mit anderer Funktion übereinstimmen,  wobei man riskieren würde, dass unnötig Daten verloren gehen.

Der Kode wird folgendermaßen aufgeführt (im Beispiel heißt die zu erstellende Tabelle MenuDefinitions):

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MenuDefinitions]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [<UTENTESQL>].[MenuDefinitions]
GO

Bitte beachten Sie, dass der Besitzer wie im zugehörigen Artikel beschrieben ausdrücklich mit dem sql-User-Namen ersetzt werden muss, der Ihnen von Aruba vergeben wird, somit wird der User [dbo] beispielsweise zu [MSSql10059].

Beachten Sie bitte auch die Tatsache, dass der Befehl select * from dbo.sysobjects where id = object_id unverändert bleiben muss, da die Systemobjekte gemäß der Funktionsweise von Ms Sql Server obligatorisch einen Zugang in select auf der public (guest)-Ebene haben.
Ändern Sie daher nie den owner der Systemobjekte [dbo], die durch das Suffix sys.... (sysobjects) gekennzeichnet sind, da sonst folgender Fehler gemeldet wird:
Invalid object name ‘MSSql10059.sysobjects'

Es ist daher angebracht, den dbo nur bei den Objekten zu ändern, die Teil Ihrer eigenen Database sein sollen.

2
Der nächste Teil bezieht sich auf die Erstellung von Tabellen, Indexen, foreign key, stored procedure usw...

Er besteht daher großenteils aus CREATE- und ALTER-Skripten, z.B.:

CREATE TABLE [MSSql10059].[ClickLog] (
 [ClickLogId] [int] IDENTITY (1, 1) NOT NULL ,
 [TableName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
 [ItemId] [int] NOT NULL ,
 [DateTime] [datetime] NOT NULL ,
 [UserId] [int] NULL
) ON [PRIMARY]
GO

ALTER TABLE [MSSql10059].[ClickLog] WITH NOCHECK ADD
 CONSTRAINT [PK_ClickLog] PRIMARY KEY  CLUSTERED
 (
  [ClickLogId]
 )  ON [PRIMARY]
GO

Hier ist der Gebrauch des sql-Usernamens, der Ihnen bei der Aktivierung seitens Aruba mitgeteilt wird, für den Besitzer obligatorisch, andernfalls werden die verschiedenen Befehle nicht ausgeführt. Wenn Sie den [dbo]-Kode unverändert lassen, erhalten Sie die Fehlermeldung:

Specified owner name 'dbo' either does not exist or you do not have permission to use it.

3
Der letzte Teil besteht im Allgemeinen aus insert-queries ,update usw... die dazu dienen, die verschiedenen Tabellen mit Daten zu initialisieren, z.B.:
INSERT INTO [MSSql10059].[CodeCountry] ([Code], [Description]) VALUES ('SH', 'St. Helena')
GO
INSERT INTO [MSSql10059].[CodeCountry] ([Code], [Description]) VALUES ('SI', 'Slovenia')
GO
Auch hier ist es notwendig, den sql-Usernamen anstelle des [dbo] zu benutzen, wie im Übrigen auch beim Kode aller Anwendungen für sql- oder transact sql-Befehle, die auf Objekten der eigenen Database durchgeführt werden, andernfalls stolpert man über den Fehler:
Invalid object name 'dbo.CodeCountry'

Wichtigkeit der Begrenzung der Zeilen innerhalb eines Skriptes:

Aufgrund der Web-Schnittstelle und der von der Anwendung mssql.aruba.it verwendeten Programmiersprache ist es notwendig, die Anzahl der Zeilen in einem Skript für eine korrekte Ausführung der Skripte auf nicht mehr als 7000-7500 zu begrenzen.

Hierzu raten wir Ihnen, die einzelne sql-Datei in mehrere Dateien mit etwa 7000-7500 Zeilen aufzuteilen.