--今天回帖偶遇一问题,存储过程默认值的问题,然后查了MSDN,所以记一下
--http://technet.microsoft.com/zh-cn/library/ms189330.aspx
--先看几个过程的执行
--先创建我们一般的写法
CREATE PROC P(@S VARCHAR(1)='A')
AS
SELECT @S
GO
EXEC P
GO
--1
ALTER PROC P (@S DECIMAL=A)
AS
SELECT @S
GO
EXEC P
GO
/*
服务器: 消息 8114,级别 16,状态 5,过程 P,行 0
将数据类型 nvarchar 转换为 numeric 时出错。
*/
--2
ALTER PROC P (@S VARCHAR(1)=中)
AS
SELECT @S
GO
EXEC P
GO
/*
----
(所影响的行数为 1 行)
*/
--4
ALTER PROC P (@S NVARCHAR(1)=中)
AS
SELECT @S
GO
EXEC P
GO
/*
----
中
(所影响的行数为 1 行)
*/
--数据类型优先级 http://msdn.microsoft.com/zh-cn/library/ms190309(SQL.90).aspx
--1参数默认值传递 有些 字符类型可以不用加''来限定,
--2参数转换过程中,默认值会优

本文介绍了SQL Server中存储过程参数默认值的问题,包括创建过程时的常见语法示例,强调了当默认值为字符串且包含特殊字符或数字时的注意事项。还探讨了存储过程与函数在参数默认值、数据类型和返回类型上的区别。
最低0.47元/天 解锁文章
4520





