T-SQL小技巧

博客分享了T-SQL的小技巧,包含DECLARE和SET语句定义变量并从job_ResumeInfo表中查询数据,还给出了多个处理IDataReader的私有静态方法,用于判断是否为DBNull值及获取不同类型数据。
1、NULL值加法运算的问题。
如果NULL与其它值(如果varchar字符等)相加,则结果为NULL值,在一些组合字符的操作时这是不希望发生的,所以要使用ISNULL函数,当值为NULL时赋给一个默认的值。
例如:
None.gifDECLARE @location varchar(300)
None.gif
SET @location=''
None.gif
SELECT 
None.gif    
@location=ISNULL(ri.location,''), 
None.gif
FROM job_ResumeInfo ri 
None.gif    
WHERE ri.resumeid=@resumeid
如果不使用ISNULL函数,而此时ri.location是NULL值的话,则永远都返回NULL值,如果加了ISNULL函数,则会返回''
2、如果表字段为可空,一定要进行DBNull判断。
None.gif        private static bool IsDBNull(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
int index = dr.GetOrdinal(name);
InBlock.gif            
return dr.IsDBNull(index);
ExpandedBlockEnd.gif        }

None.gif        
private static string GetString(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
if(!IsDBNull(dr, name))
InBlock.gif                
return (string)dr[name];
InBlock.gif            
return null;
ExpandedBlockEnd.gif        }

None.gif        
private static int GetInt32(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
if(!IsDBNull(dr, name))
InBlock.gif                
return (int)dr[name];
InBlock.gif            
return 0;
ExpandedBlockEnd.gif        }

None.gif        
private static DateTime GetDateTime(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
if(!IsDBNull(dr, name))
InBlock.gif                
return (DateTime)dr[name];
InBlock.gif            
return DateTime.Now;
ExpandedBlockEnd.gif        }

None.gif        
private static bool GetBoolean(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
if(!IsDBNull(dr, name))
InBlock.gif                
return (bool)dr[name];
InBlock.gif            
return false;
ExpandedBlockEnd.gif        }

None.gif        
private static Guid GetGuid(IDataReader dr, string name)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
if(!IsDBNull(dr, name))
InBlock.gif                
return (Guid)dr[name];
InBlock.gif            
return Guid.Empty;
ExpandedBlockEnd.gif        }

3、如果原来装有SQL2000使用的是默认实例,现在又要安装SQL2005,则须为SQL2005配置一个自定义实例,要不不能进行SA登陆。如果使用自定义实例,则写连接字符串和企业管理器连接时,须在服务器名称后加上自定义实例的名称,如:CJB\SQL2005

转载于:https://www.cnblogs.com/chenjunbiao/archive/2005/11/10/1760261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值