2016-08-01 14 views
0

ich eine gespeicherte Prozedur erstellen möchten, die Werte in @table_name, @column_name als @param1 und @param2 und Werte zuweisen @TableToBeExecuted als [email protected][email protected]_Queries nehmen.Zuweisen von Werten eines gespeicherten Prozedur Parameter eine andere gespeicherte Prozedur mit

Ich versuchte auf diese Weise, aber ich konnte den Wert nicht wie gewünscht erhalten.

... 
EXEC [dbo].[sp_CreateTable] 
    @table_name='@param1', 
    @column_name = '@param2', 
    @TableToBeExecuted = 'abc_'[email protected]+'_'[email protected]+'_Queries' 
GO 
... 
+0

Für welche RDBMS ist das? Bitte fügen Sie ein Tag hinzu, um anzugeben, ob Sie 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' verwenden - oder etwas ganz anderes. –

+0

Warum erscheint diese ganze Übung als eine unglaublich schlechte Art, Dinge zu tun? – NotMe

+0

Diese Übung ist nur ein Teil des Codes, machen Sie keine Urteile basierend auf wenigen Codezeilen. Ich brauche Antwort, um eine andere Aufgabe zu erfüllen. Bitte versuchen Sie, meine obige Frage @NotMe zu beantworten – cnayak

Antwort

1

Keine Notwendigkeit, als Parameter zu erhalten. Sie sollten eine lokale Variable in sp erstellen.

ALTER PROCEDURE [dbo].[sp_CreateTabl] 
    @table_name NVARCHAR(MAX), 
    @column_name NVARCHAR(MAX) 
AS 
BEGIN 
    DECLARE @TableToBeExecuted NVARCHAR(MAX) = 'abc_' + @table_name + '_' + @column_name + '_Queries' 
    -- Sp code here.. 

END