So erstellen Sie Tabellen dynamisch in gespeicherten Prozeduren in T-SQL
Erstellen einer Tabellenvariablen als temporäre Tabelle, wie im bereitgestellten Beispiel gezeigt Beispiel, ist falsch. Um eine temporäre Tabelle zu erstellen, verwenden Sie die folgende Syntax:
CREATE TABLE #customer ( Name varchar(32) not null )
Um eine Tabellenvariable zu deklarieren, verwenden Sie diese Syntax:
DECLARE @Customer TABLE ( Name varchar(32) not null )
Dynamic SQL bietet eine alternative Methode zum Erstellen gespeicherter Tabellen Verfahren. Sie können eine SQL-Anweisung als Zeichenfolge erstellen und ausführen:
CREATE PROCEDURE sproc_BuildTable @TableName NVARCHAR(128) ,@Column1Name NVARCHAR(32) ,@Column1DataType NVARCHAR(32) ,@Column1Nullable NVARCHAR(32) AS DECLARE @SQLString NVARCHAR(MAX) SET @SQString = 'CREATE TABLE '+@TableName + '( '+@Column1Name+' '+@Column1DataType +' '+@Column1Nullable +') ON PRIMARY ' EXEC (@SQLString) GO
Diese gespeicherte Prozedur kann wie folgt ausgeführt werden:
sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'
Das dynamische Erstellen von Tabellen in gespeicherten Prozeduren ist jedoch im Allgemeinen möglich davon wird abgeraten, weil:
Wenn Sie möchten, dass Tabellen dynamisch erstellt werden, sollten Sie andere Lösungen in Betracht ziehen, z B. die Zuordnung von Geschäften zu vorhandenen Produkttabellen mit definierten Preisen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamisch Tabellen in gespeicherten T-SQL-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!