2017-01-11 3 views
0

Haben Sie ein Szenario, in dem die Tabelle, die ich erstelle, parametrisiert ist.SQL Server: create TABLE mit dem Tabellennamen als Parameter

Als Beispiel: Ich muss Tabelle mit dem Namen Customer_1 für Kunden mit der id = 1 erstellen. Für den zweiten Kunden muss ich eine separate Tabelle mit dem Namen Customer_2 erstellen.

Grundsätzlich sollte die CREATE TABLE parametriert werden.

Eine Option, die ich dachte, war, eine Tabelle zu erstellen und dann in die Tabelle mit dem angegebenen Namen umzubenennen.

CREATE TABLE Customer ... 
Rename Table Customer to Customer_1 

Was ist der richtige Ansatz, um dies mit T-SQL in SQL Server zu tun?

+0

Sie benötigen würde 'aussehen in Declare @ variables' Obwohl ich frage mich, warum sollten in der Welt, die Sie jedem Kunden ihre eigenen Tisch geben möchte – Edward

+3

' ich eine separate table' erstellen müssen ... es klingt wie eine wirklich schlechte Idee, eine separate Tabelle für jeden Kunden zu erstellen. Das wird überhaupt nicht skalieren. –

+0

'dynamische sql' - suchen Sie nach diesem – Abhishek

Antwort

1

Versuchen Sie dies, ändern Sie @Parameter mit Ihrem Parameter.

DECLARE @Parameter NVARCHAR(MAX) 
DECLARE @SQString NVARCHAR(MAX) 
SET @Parameter = '1' 
SET @SQString = 'CREATE TABLE Customer_'+ @Parameter + '(i int)' 
EXEC (@SQString) 
GO 
+3

'Quotename (@Parameter)' wird sicherer sein –

Verwandte Themen