存储过程中参数的条件数据类型转换

时间:2011-09-20 04:29:42

标签: sql-server sql-server-2005

我读过有关SQL Server的Cast and Convert函数,但我有一些不同的要求。我希望将所有存储过程参数声明为varchar,以便在使用AddWithValue方法添加参数时消除C#中所需的大多数转换代码。

我希望尽可能多地在数据库中放入代码来减少前端代码。我的存储过程包含INSERTUPDATE个查询。我想在查询本身或以任何其他更好的方式转换参数的数据类型。 CAST函数适用于转换,但如果参数没有值,我还想传递NULL?

例如:

@Udate varchar(10),
@Uamount varchar(50)

INSERT INTO table (Name, Udate, Uamount) 
  VALUES (@Name, Cast(Udate As DateTime), Cast(Uamount As Decimal)

在查询中使用CAST的缺点是,许多CAST函数使查询的可读性变差。还有什么我可以转换数据类型以及如何检查空值?

1 个答案:

答案 0 :(得分:0)

我想,这个网址可能会对你有帮助。

http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx