--今天回帖偶遇一问题,存储过程默认值的问题,然后查了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 行)
*/
--数据类型优先级