34,590
社区成员
发帖
与我相关
我的任务
分享
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE PROC_A
@STR VARCHAR(10) = 'abc ' OUTPUT
AS
select @STR = @STR + '123'
select @Str
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
DECLARE @B VARCHAR(10)
set @b=''
EXEC PROC_A @STR2 = @B
SELECT 'result:'+@B
-----------------
result:
(所影响的行数为 1 行)
create proc up_test(@city varchar(50) = 'wuhan')
as
select @city
exec up_test --没有加参数
----
结果为wuhan
CREATE PROCEDURE PROC_A
@STR VARCHAR(10) = 'abc ' OUTPUT
AS
select @STR = @STR + '123'
GO
DECLARE @B VARCHAR(10)
EXEC PROC_A @STR = @B output --原因在这里
SELECT 'result:'+@B
CREATE PROCEDURE PROC_A
@STR VARCHAR(10) = 'abc ' OUTPUT
AS
select @STR = @STR + '123'
GO
DECLARE @B VARCHAR(10)
set @B='' --这里改了一点
EXEC PROC_A @STR = @B
SELECT 'result:'+@B
CREATE PROCEDURE PROC_A
@STR VARCHAR(10) = 'abc ' OUTPUT
AS
select @STR = @STR + '123'
GO
DECLARE @B VARCHAR(10)
set @b = 'abc'
EXEC PROC_A @STR = @B output
SELECT 'result:'+@B
drop proc PROC_A
-----------------
result:abc123
(所影响的行数为 1 行)
CREATE PROCEDURE PROC_A
@STR VARCHAR(10) = 'abc ' OUTPUT
AS
select @STR = @STR + '123'
GO
DECLARE @B VARCHAR(10)
set @b = 'abc'
EXEC PROC_A @STR = @B output
SELECT 'result:'+@B
drop proc PROC_A