Hallo,
gibt es eine Möglichkeit, an jedem Monatsletzten um 23:59 Uhr eine Momentaufnahme per Zeitplan anzulegen?
Danke für die Hilfe!
Viele Grüße
Olaf
SSRS Momentaufnahme am Monatsletzen
Where- Klausel mit Select
Hallo zusammen,
folgendes Problem. Hier eine WHERE-Klausel:
and
(ltrim(rtrim(nf3.Such))) COLLATE database_default
in
(SELECT (ia.Such) as VergleichFROM[BI02].[dbo].[Industrielle_Automation_01]ia)
Die Spalte nf3.Such enthält Zeichenfolgen aus 2, 3 oder mehr Zeichen.
Die Spalte ia.Such enthält Zeichenfolgen aus 2 oder 3 Zeichen.
Jetzt möchte ich so etwas erreichen wie nf3.Such like ia.Such + '%'. Wie kann man so etwas in diesem Select einbauen?
Danke für die Hilfe!
Viele Grüße
Olaf
Werte mit Bedingung nebeneinander
Hallo zusammen,
ich stehe aktuell auf dem Schlauch und komme nicht weiter und würde mich sehr über eure Unterstützung freuen.
Ich möchte gerne aus einer Tabelle die Kontaktdaten abfragen. Die Kontaktdaten stehen in der Spalte "Data" und können über den "GroupKey" identifiziert werden.
Name | Data | GroupKey |
---|---|---|
Horst | 089123456 | Telefon |
Horst | 089654321 | Fax |
Horst | info@horst.com |
So soll das Ergebnis hinterher aussehen:
Name | Telefon | Fax | |
---|---|---|---|
Horst | 089123456 | 089654321 | info@horst.com |
Peter | 040123456 | NULL | peter@horst.com |
Manfred | 0221223344 | 0221223355 | manni@eiszeit.de |
Ich habe es mit "Case" versucht, bekomme dadurch aber leere Zellen und der Name wird gedoppelt.
CASE WHEN Communication.GroupKey = 'Telefon' THEN Communication.Data ELSE null END AS Telefon, CASE WHEN Communication.GroupKey = 'Fax' THEN Communication.Data ELSE null END AS Fax, CASE WHEN Communication.GroupKey = 'Email' THEN Communication.Data ELSE null END AS Email
Name | Telefon | Fax | |
---|---|---|---|
Horst | 089123456 | ||
Horst | 089654321 | ||
Horst | info@horst.com |
Habt ihr eine Idee für mich?
SQL-Formel auf definierte Alias-Namen beziehen
Hallo,
ich spiele mich gerade etwas in SQL herum.
Ist es möglich, dass ich in SQL ein Feld berechnen lasse, dieses sich auf ein vorher errechnetes Feld bezieht, diesem ich einen eigenen Namen gegeben habe? Ich hoffe mit diesem Bild kann ich besser beschreiben was ich meine:
Mein Ziel ist es, dass ich den neuen Wert direkt über die Felder "Step_In" und "Step_out" ermitteln kann und nicht immer über den kompletten "Pfad" (dbo.Tabele.Feldname) gehen muss.
Danke im voraus.
SQL-JSON: Konvertieren einer Kombination an Spalten mit variablen Länge und unterschiedlichen "Separatoren" in eine JSON formatierte Spalte
Hallo Zusammen,
ich wäre dankbar für alle Vorschläge zur Lösung folgender Problem:
Input als Ergebnis einer SQL Abfrage:
---------------------------------------------------------------------------------------------------------------------------------------
| instance| value | created |
---------------------------------------------------------------------------------------------------------------------------------------
| ABC_20201007_EFG_Server1_Server2 | Intel(R) Xeon(R) CPU ... @ 2.60GHz | 2020-06-07 01:22:13.000|
---------------------------------------------------------------------------------------------------------------------------------------
Output Dataset mit einer Spalte (Instance+Value) in JSON Format und den allen übrigen Werten in ursprünglicher Datentyps:
[{"sidInstance":"ABC"
,"DatumInstance":"20201007"
,"ServerInstance":"EFG"
,"VirtualServerInstance":"Server1"
,"VirtualServerInstance":"Serever2"
, "OptionalColumn": "Server3"
,"CPUType":"Intel(R) Xeon(R) CPU ..."
,"Frequence":"2.60GHz"}]
Danke und Gruß
Irina
Irina
sqlmetall nicht installiert???
Hallo :)
Ich möchte das Tool Linqer nutzen. Dieses sucht aber nach einer Installation von sqlmetall...
Leider kann ich dieses Programm nicht finden. Google sagt, es würde automatisch mit Visual Studio installiert. Ich habe VS 2019 installiert...
Mein System ist Windows 10.
Bestimmt kann mir hier jemand helfen. Danke schon mal :)
.::datekk::.
Merge-Replikation mit FILESTREAM-Spalten - Konflikttabelle
Hallo zusammen,
ich bin heute über ein Problem gestolpert, das nur auf Tabellen mit Filestream-Spalten auftritt.
Wenn ich solch eine Tabelle als Artikel in der Merge-Replikation habe, dann erstellt SQL Server eine Konflikttabelle, die anders aussieht als bei denen ohne FILESTREAM-Spalte. Bei letzteren gibt es keinen Primary Key, sondern nur einen zusammengesetzten Schlüssel bestehend aus dem Primary Key der Artikeltabelle und der Spalte data_source_origin. Macht ja auch Sinn - denn nur so können Konflikte aus unterschiedlichen Abonnennten gespeichert werden.
Für den Artikel mit FILESTREAM-Spalte hingegen erstellt die Merge-Replikation auf der zugehörigen Konflikt-Tabelle einen Unique Key auf der Rowguid-Spalte der Ausgangstabelle. Muss ja auch, denn die Regeln für eine Tabelle mit Filestream-Spalten besagen, dass es einen UK auf der ROWGUID-Spalte geben muss - und letztlich entspricht die Konflikt-Tabelle ja der Ausgangstabelle. Die Spalte data_source_origin findet hier hingegen keine Verwendung, was zur Folge hat, dass auf dem Verleger nur ein konfliktierender Abonnent protokolliert werden kann. Kommt ein zweiter mit einer Änderung auf dem gleichen Datensatz, kommt es zur Schlüsselverletzung auf dem UK der Konflikttabelle und der ganze Synchronisationsvorgang schlägt fehl bis der Konflikt manuell aufgelöst bzw. aus der Konflikttabelle entfernt worden ist.
Jetzt könnte man versuchen als Workaround die Tabelle zu droppen und mit eine UK auf ROWGUIDCOL und data_source_origin neu zu erstellen - geht aber auch nicht, weil data_source_origin NULLABLE ist.
Der Hintergrund ist auch klar - unter der ROWGUIDCOL (oder dem UK?) werden die Dateien im FILESTREAM abgelegt - gäbe es zwei mit gleichem Schlüssel, würden die Dateien sich überschreiben.
Hat jemand hierzu schon mal eine Lösung gesehen oder gibt es hierzu vielleicht einen Bugreport bei Microsoft? Ich bekomme das Verhalten in allen Versionen von 2012-2017 - also ein durchaus altes "Feature".
Vergleich von 2 Spalten in unterschiedlichen Tabellen
Hallo zusammen,
Leider konnte ich bislang keine Lösung für mein Problem finden, daher versuch ichs jetzt mal hier :)
Folgendes Szenario:
Ich habe 2 Tabellen, in denen in je einer Spalte ein Name steht. Tabelle 1 beinhaltet dabei die Namen, nach denen ich suchen möchte und Tabelle 2 ist der Ort, an dem ich suchen möchte. Am Ende hätte ich also gerne eine neue Tabelle, in der alle Einträge aus
Tabelle 2 sind, die ich auch in Tabelle 1 finden konnte.
Kleines Problem dabei: Die Namen werden auch immer wieder unterschiedlich geschrieben (ss - ß, ae - ä, zweiter Name, usw.). Deswegen wär hier vielleicht auch sowas wie ein fuzzy search notwendig.
Bislang habe ich das mit einem Fulltext Index und CONTAINS gemacht. Aber so bekomme ich natürlich die Unschärfen nicht mit ins Ergebnis.
Kann mir hier jemand helfen/einen Tipp geben?
Beim Aendern von Tabellen werden Berechtigungen gelöscht
Hallo Allerseits
Wissensstand über SQL Server: Anfänger
System: Terminal-Server
SQL Server: Version 13.0.5102.14
Zugriffs-Tool: dbForge Studio Express 2019 Version 5.8.107 (für Berechtigungen und anderes)
SSMS (Einbinden der User)
Mein Problem:
Ich muss das FE, das in Access 365 ist, und die Berechtigungen im BE qualifizieren und nach der Qualifizierung die aktiven Daten importieren.
Zum Importieren muss ich die Identity-Spalten ausschalten da sonst beim Datenimport aus dem "alten" Access 2003 BE ein Fehler auftritt. Nach dem Import muss ich die Spalte wieder auf Identity setzen.
Beim Aus- und Einschalten der Identity-Spalte werden die Tabellen von SQL Server gelöscht und neu erzeugt und dabei werden auch die erfassten Berechtigungen gelöscht. Damit ist die Qualifizierung der Berechtigungen dahin, ich muss sie neu erfassen, neu Qualifizieren und die Daten neu einlesen d.h. ich dreh mich in einer Endlosschleife.
Kennt jemand dieses Problem und hat ev. eine Lösung dazu ?
Ich bin für jeden Tipp dankbar.
Reiner Berger
Reiner Berger
unterschiedliches Abfrageverhalten SQL Server 2012 zu 2016
Hallo zusammen,
ich habe festgestellt, dass eine Datenbank auf dem SQL Server 2016 DEV im Kompatibilitätsmodus 2012 läuft (warum weiß ich nicht, sollte nie so sein, gab kein 2012er).
Nach der Umstellung des Kompatibilitätsgrad auf 2016 zeigt sich ein Verhalten, dass ein View anstatt 2 Sekunden jetzt über 2 Minuten benötigt. Die Ursache habe ich lokalisiert. Allerdings benötige ich input, warum es dieses Verhalten zwischen den Versionen gibt.
Der Teil der Probleme macht ist folgender, der IN-Befehl:
CASE WHEN kai.sparte = 'S' THEN 'Retail' WHEN ocu.okcuno IN (SELECT oschl1 FROM dbo.erpOCHCUS) THEN och1.oschl1 WHEN och.oschct IS NULL THEN 'keine HBZ' ELSE och.oschct END AS HANDELSBEZIEHUNG
VG Jürgen
Grundsätzliches zu Datentypen
Hallo,
wir haben seit über 15 Jahren gewachsene Datenbanken mit unzähligen Tabellen und einer wilden Kombination von Datentypen.
Mir geht es aktuell um einen optimalenDatentypen für Textfelder.
Meine Überlegung war als Datentyp für Text grundsätzlich NVARCHAR zu verwenden, da wir in den Datenbanken zumindest teilweise mit "internationalen" (zumindest europäischen) Zeichen klar kommen müssen.
Darüber habe ich mal irgendwo gelesen das NVARCHAR und VARCHAR Felder immer nur so viel Speicherplatz benötigen wie auch Zeichen darin gespeichert sind.
Da ich in einem NVARCHAR Feld maximal 4000 und in einem VARCHAR Feld das Doppelte speichern kann, frage ich mich ob es wirklich die beste Lösung komplett auf NVARCHAR umzusteigen.
Wir habe Tabellen mit teilweise mehreren Millionen Datensätzen und in einigen Fällen auch sehr vielen Feldern.
Hat jemand Erfahrung mit diesem Thema?
Bin für jeden Tipp dankbar.
Kein Zugriff auf FileTable- Freigaben
Ich habe Probleme mit FileTables in SQL 2016.
Ich sehe lediglich die Freigabe "mssqlserver" ( aber in klein, anstatt wie in SQl-Server konfiguriert in Grossbuchstaben).
Klicke ich darauf, dann erhalte ich eine Fehlermeldung, daß ich wohl keine Berechtigung habe.
Ich sehe nicht einmal die Freigaben für die FileTables!
Was ist da verkehrt?
SSIS Identity Spalten übertragen
Hallo SQL-Profis!
Ich möchte per SSIS in einem Datenflusstask eine Tabelle mit einer Identity-Spalte auf eine identische Tabelle auf einen anderen SQL-Server kopieren. SQL-ServerA.TabelleA -> SQL-ServerB.TabelleA und dabei die ID-Werte der TabelleA auf ServerA beibehalten werden sollen!!!
Ohne Einbeziehung der Identity-Spalte (autoincrement bei TabelleA auf ServerB) wird die TabelleA problemlos zwischen den SQL-Servern kopiert.
Ein vorausgehender SQL-Task mit: SET IDENTITY_INSERT TabelleA ON verhindert nicht, dass derDatenflusstask bei Einbeziehung der Identity-Spalte auf der Ziel-Tabelle, einen Fehler anzeigt und nicht gestartet werden kann.
Wie kann man denn Identity-Spalten in einem Datenflusstask mit kopieren???
Backup-Files für Restore auslesen
Hallo zusammen,
ich muss ab und an ein Restore einer Datenbank zu einem spezifischen Zeitpunkt durchführen, das mache ich auf einem Test-System um Daten auszulesen, die bestehende Datenbank bleibt auf dem aktuellen Stand.
Die Backups werden mit FULL, LOG, DIFF mit einem Backup-Plan erstellt.
Um zu wissen welche Backup-Files ich brauche, verwende ich gerne die Timeline der bestehenden Datenbank, fühle mich aber immer unwohl durch Gewohnheit den hier ungewollten Restore zu starten :-)
Jetzt suche ich nach einer Möglichkeit aus der bestehenden Datenbank die Files auszulesen um an einen spezifischen Stand zu gelangen. Was muss ich den abfragen um eine Liste der Files zu bekommen die es dazu braucht?
Viele Grüsse,
Daniel
Query wird extrem langsam, sobald TOP N im Spiel ist
Hallo zusammen,
Ich habe hier eine Anforderung eine Query zu bauen um herauszufinden welche als Pflicht deklarierte Software auf welchen Server NICHT installiert ist.
Als Datenbasis habe ich 3 Tabellen.
1. Die Liste aller vorhandenen Server
2. Die Liste der Software Installationen. Hier ist für jede gefundene Software eine Zeile pro Server enthalten.
3. Eine manuell gepflegte Liste an SW-Paketen nach denen gesucht werden soll. Die Einträge können auch Wildcards enthalten.
Die überschneidende Spalte zwischen 1. und 2. Tabelle ist der Servername.
Wir reden hier von Datenmengen von
1. Ca. 2.000 Zeilen
2. Ca. 110.000 Zeilen
3. Derzeit nur 1 Zeile
Führe ich diese Query aus oder mach ein Select * von der neuen View ist die in unter einer Sekunde durch und liefert ca. 360 Rows.
Leider arbeitet unser Webfrontend aber gerne mit TOP N für die Pagination und das bricht mir gerade das Genick.
Sobald Top N im Spiel ist scheint das überhaupt nicht mehr fertig zu werden. Meistens brech ich so nach 3-4minuten ab. Das Webfrontend würde wohl nach 20 Sekunden aufgeben.
Hättet ihr Ideen wie ich das besser machen kann?
Plan B wäre es die View asynchron in eine Table zu materialisieren. Aber mehr Schahm hätte es schon, wenn das alles mit Live-Daten funktionieren würde.
ALTER view View_Device_Server_Win_Missing_Required_SW AS -- 1. CTE erstellt eine Namensliste aus manueller Searchliste und realer SW-Installations-Liste WITH cte_Required_SWPackages AS ( SELECT DISTINCT Installed.Displayname ,Installed.[Version] FROM p_Device_Software_Installations Installed INNER JOIN CFGRequiredSoftware Req ON ( Installed.Displayname LIKE Req.Displayname AND Installed.[Version] LIKE ( CASE WHEN Req.[Version] IS NULL THEN '%' WHEN Req.[Version] = '' THEN '%' ELSE Req.[Version] END ) ) ) -- 2. CTE filtert nur die "Aktive" Server raus ,cte_Active_Windows_Servers AS ( SELECT [Name] ,Verw ,DeviceType ,id FROM View_Device_Server_Win WHERE InstallStatus = 'active' ) -- 3. CTE filtert nur gesuchte Software/Server-Zeilen aus der Gesamt Tabelle ,cte_Currently_Installed AS ( SELECT p_Device_Software_Installations.Computername ,p_Device_Software_Installations.DisplayName ,p_Device_Software_Installations.[Version] FROM p_Device_Software_Installations WHERE p_Device_Software_Installations.DisplayName IN ( SELECT Displayname FROM cte_Required_SWPackages ) AND p_Device_Software_Installations.[Version] IN ( SELECT [Version] FROM cte_Required_SWPackages ) ) -- 4. CTE baut ein Kartesisches Produkt aus Active-Serverlist und gesuchter Softwareprodukte ,cte_workinglist AS ( SELECT * FROM cte_Required_SWPackages FULL JOIN cte_Active_Windows_Servers ON (0 = 0) ) -- Finaler Query stellt das Kartesische Produkt gegenüber der reduzierten SW-Installliste cte_Currently_Installed um raus zufinden was nur im K-Produkt enthalten ist SELECT cte_workinglist.[Name] ,cte_workinglist.[Version] ,cte_workinglist.DisplayName ,cte_workinglist.Verw ,cte_workinglist.DeviceType ,cte_workinglist.id FROM cte_workinglist LEFT JOIN cte_Currently_Installed ON (cte_workinglist.[Name] = cte_Currently_Installed.Computername AND cte_workinglist.DisplayName = cte_Currently_Installed.DisplayName AND cte_workinglist.[Version] = cte_Currently_Installed.[Version]) WHERE Computername IS NULL
SQL Server 2019 - Fremdschlüsselspalte als Primary Key
Hallo zusammen,
ich möchte in einer Tabelle den Primary Key gleichzeitig mit einem
Fremdschlüssel belegen.
Im Management Studio klappt das. In Visual Studio wird mir eine
Fehlermeldung angezeigt.
Die Tabelle hätte keinen Primärschlüssel.
Kennt sich jemand aus??
Danke
Dirk
Anzahl von Datensätzen in Gruppen aufteilen
Hallo
ich möchte eine Anzahl von x Datensätzen einer Tabelle nach dem Zufall in x Gruppen aufteilen (z.B. 50 Datensätze in 5 Gruppen), damit ich die einzelnen Gruppen dann später selectieren kann.
Über ein Update sollen dann jeweils die Zahlen 1-5 in ein integer Feld der Datensätze eingetragen werden.
Hat jemand einen Tipp für mich?
Liebe Grüße, die Luzie!
Ausführen einer Stored Procedure auf einem Linked Server mit _Rückgabeparametern_
Hallo,
ich beiße mir grade die Zähne an folgendem Problem aus:
Unsere Kundenverwaltung ist auf dem Server [SQL_01] installiert. Über eine Erweiterung soll sie nun in einer anderen Datenbank auf dem Server [SQL_02] eine Stored Procedure ausführen. Das ganze muss über ein VBS-Skript funktionieren, das auf dem [SQL_01] läuft.
Dazu habe ich den [SQL_02] als linked Server im [SQL_01] angelegt.
Ich kann nun mit
EXEC ('[DBName].[Schema].[Procname] @param1=<value>') AT [SQL_02]
eine Stored Procedure aufrufen.
Ich schaffe es aber nicht, die von der SP generierten Werte (Return-Werte, Ergebnisse eines Selects, Call-by-Reference-Variablen) auszulesen. Für die Ergebnisse bin ich also blind.
Kann mir da jemand weiterhelfen?
Danke im Voraus
Wolfgang
SQLPutData -> Fehler 22001 (String data right truncation)
ich implementiere in einem ANSI C Programm Lesen und Schreiben der BLOB-Felder von unbekannter Größe (Tabellen-Feld: VARBINARY(MAX)). Die Idee ist - lesen und schreiben in Segmenten und im Programm Speicher nach dem Bedarf allozieren.
Habe die Benutzeranleitung zu den Funktionen SQLBindParameter, SQLParamData, SQLPutData (fürs Schreiben) und SQLGetData (fürs Lesen) mehr oder weniger verstanden. Als Erstes habe ich versucht, ein 40K array mit Ziffern 0-9 zu füllen, in 1К-Segmenten mit SQLPutData zu schreiben, dann Lesen und wieder schreiben - alles funktionierte. Als 2. Schritt habe ich die realen Daten (gespeichertes Bild) gelesen. Größe mit DATALENGTH() geprüft -7233. Beim Lesen - kein Problem. Beim Schreiben auch - solange ich die ersten 7 Segmente schreibe. Aber beim Rest von 233 Bytes kommt ein Fehler 22001 (String data right truncation). Durch Lesen der Fehlerbeschreibung in Microsoft-Doku wurde ich nicht wirklich schlau. Rest vom array nach 7233 Bytes ist mit 0 (binär) gefüllt - warum meint der ODBC-Driver, dass "more data was send for a long parameter... than was specified in the length buffer"??? Ich habe schon alles mögliche versucht - komme aber nicht weiter. Hat jemand eine Idee?
DB Offline schalten ohne Ergebnis
Hallo!
Ich möchte auf einem MS SQL-Server 2012 im MSSMS eine Datenbank Offline schalten.
Der Vorgang (Task -> Datenbank Offline schalten) wird zwar gestartet, aber ohne eine Fehlermeldung, niemals beendet. Die DB bleibt online, das Task-Fenster wird nicht geschlossen.
Welche "Verbindungen" könnten denn das offline schalten im Hintergrund blockieren?
Fred.