这是我的存储过程:
ALTER PROCEDURE [dbo].[PR_City_SelectByPK]
@CityName varchar
AS
SELECT [dbo].[City].[CityName], [dbo].[City].[State]
FROM [dbo].[City]
WHERE [dbo].[City].[CityName] = @CityName
主键是CityName。我正在尝试将CityName和State作为存储过程的输出,但没有得到任何输出值作为回报。
Never在SQL Server中使用不带长度参数的字符串类型。默认值因上下文而异。在这种情况下,它是1。
所以,试试这样的东西:
ALTER PROCEDURE [dbo].[PR_City_SelectByPK] (
@CityName varchar(255)
) AS
BEGIN
SELECT [dbo].[City].[CityName], [dbo].[City].[State]
FROM [dbo].[City]
WHERE [dbo].[City].[CityName] = @CityName;
END;
注:
- 我还强烈建议始终将身体封闭在
BEGIN
/END
块中。这样可以清楚地显示存储过程的结束位置 - 对于这种类型的操作,可以考虑使用用户定义的函数
@CityName参数是varchar,没有大小,如果是varchar(1(,则需要将其大小设置为varchar(50(:
ALTER PROCEDURE [dbo].[PR_City_SelectByPK]
@CityName varchar(50)
AS
SELECT [dbo].[City].[CityName], [dbo].[City].[State]
FROM [dbo].[City]
WHERE [dbo].[City].[CityName] = @CityName