Ich habe zwei SQL-Skripts: Skript A und B. Skript A ruft Informationen ab und verwendet den sp_executesql
-Befehl zum Aufrufen der gespeicherten Prozedur (Skript B). Das kann ich erfolgreich erreichen.SQL-Pass-Parameter von einem gespeicherten Prozess zu einem anderen
Allerdings möchte ich jetzt einen Wert von Skript A zu Skript B übergeben. Ich bin nicht in der Lage, dies zu erreichen. @nID
ist der Parameter, den ich weitergeben möchte. Ich verwende diesen Link als Referenz https://msdn.microsoft.com/en-IN/library/ms188001.aspx
Meine Skripte sind beigefügt. Der Einfachheit halber habe ich meinen Parameterwert gleich 5 gesetzt. Wie übertrage ich also eine "5" von einem Skript zum anderen? Danke für jede Hilfe.
Script A
BEGIN
SET NOCOUNT ON;
DECLARE @sp nVARCHAR(25)
DECLARE @nID nvarchar(25)
DECLARE @busID nvarchar(25)
DECLARE @ParmDefinition nvarchar(500)
SET @ParmDefinition = N'@nID nvarchar(50) output ';
set @sp = 'WMCOMM';
set @busID = 5
execute sp_executesql @sp, @ParmDefinition, @nID = @busID;
END
Script B
ALTER PROCEDURE [dbo].[WMCM]
AS
BEGIN
SET nocount ON;
declare @numID nvarchar(50)
insert into tester(numid)
values(@numID)
END
ich das geändert, und es scheint zu passieren, um zu versuchen, leider jetzt Script A ist ein Fehler, die besagt, WMCM sp erhalten wird, einen Parameter @nID erwartet, die nicht geliefert wurde . Irgendwelche Ideen? – arios
Das sp_execute in Prozedur A muss geändert werden, um den Wert zu übergeben. – pacreely
in der Tat .... Wie man das ändert, so dass es es richtig eingibt? Ich versuche jeden Weg und bekomme immer noch den gleichen Fehler. – arios