2

Ich habe eine Ansicht aus einer Tabelle in einer anderen Datenbank erstellt. Ich habe dbo-Rechte für die Datenbanken, so dass das Anzeigen und Aktualisieren kein Problem darstellt. Diese bestimmte Ansicht hatte keine "ID" -Spalte. Also habe ich einen mit ROW_NUMBER zur View hinzugefügt. Jetzt hatte ich ein Problem mit einer Tabelle in der gleichen Datenbank, die nicht in LightSwitch auftauchte, aber das wurde gelöst, indem man die ID-Spalte auf NOT NULL änderte. Ich habe in LightSwitch keine echte Manipulation vorgenommen. Ich bin immer noch in der Import Your Data Source-Stufe (dh sehr Anfang).Wie bekomme ich MS LightSwitch, um meine Ansicht zu erkennen?

Diese Ansicht in LightSwitch wird schreibgeschützt sein. Kein Aktualisieren oder Löschen Nach dem, was ich gelesen habe, benötigt LightSwitch eine Möglichkeit, die PK einer Tabelle oder View zu bestimmen. Entweder liest es es aus dem Schema (Spalte als PK) oder findet eine Spalte als NOT NULL und verwendet diese als PK. Nun, ich kann anscheinend keine dieser Dinge in SQL Server oder LightSwitch tun, also bin ich fest, wie ich LightSwitch dazu bringen kann, meine Ansicht zu "sehen".

+0

Sie mit dem Lesen tun könnte [die perfekte Frage Schreiben] (https://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect- Frage.aspx). – Oded

+0

@davidstratton: Fair genug. – dotnetN00b

+0

Nun, [nachdem ich diesen Link zur Problembehebung gesehen habe] (http://social.msdn.microsoft.com/Forums/en-US/lightswitch/thread/64534e95-ae07-4b8d-9064-f4deadae6438), werde ich warte ab, ob es eine bessere Lösung gibt. – dotnetN00b

Antwort

2

Damit Lichtschalter Ihre Ansicht sehen können, müssen Sie einen Primärschlüssel in einer Spalte der Tabelle haben, aus der Sie auswählen. Beispiel:

create table tbl_test 
(
id int identity primary key not null, 
value varchar(50) 
) 

create view vw_test 
as 
select * 
from tbl_test 

Anmerkung: manchmal, wenn Sie die Primärschlüsselspalte in der select-Anweisung Ansicht bearbeiten Lichtschalter dazu führen kann, sehen sie nicht

Beispiel:

create view vw_test 
select cast(id as varchar(50) id,... 

Lichtschalter nicht sehen würde, die Tabelle

Ich hoffe, das war hilfreich! :)

+1

Das Dumb Tool fügt immer noch eine Definition hinzu wie "Der Schlüssel wurde abgeleitet und die Definition wurde als schreibgeschützte Tabelle/Ansicht erstellt". WIRKLICH ANNOYING - hat Microsoft nicht von INSTEAD OF Triggers gehört, um Updates durch eine Ansicht zu behandeln - es ist 2013, nicht die dunklen Zeitalter! – SAinCA

0

Ich mache in diesem Fall eine Ansicht mit einer ID-Spalte gleich der Zeilennummer erstellen. Stellen Sie mithilfe der Funktionen isnull() oder coalesce() sicher, dass die Spalte, auf der Sie die ID aufbauen, nicht null ist.

Beispiel:

create view as 
select distinct ID = row_number() over (order by isnull(Name,'')), 
Name = isnull(Name,'') 
from My_Table 
Verwandte Themen