日度归档:2018年7月30日

mssql sqlserver 中 where 1=1 where 1=0的应用场景


摘要:
下文将讲述 where 1=1 where 1=0的应用场景


where 1=1 永远为真
where 1=0 永远为假
下文将讲述where 1=1 where 1=0的应用场景

1.当我们使用字符串拼接sql脚本时,
declare @sql =’select * from tableName where 1=1 ‘
当在字符串后面使用where 1=1后,如果有查询条件需使用时,直接加入相应的条件就可以
if @ziDuan !=”
begin
set @sql = @sql +’ and ziduan=’+@ziduan
end

2. where 1=0 的应用场景
快速创建或返回表结构,无需数据时
select * from tableName where 1=0

select *into newTableName from tableName where 1=0

mssql sqlserver 检索errorlog的方法分享


摘要:
下文将分享检索errorlog日志的方法


实现思路:
将errorlog读取,并存入至指定物理表,然后对物理表进行select 查询检索,找出我们所需的信息,如下所示:

     CREATE TABLE #tmp_errorlog  (
       writeDate DATETIME
     , ProcessInfo VARCHAR(256)
     ,MessageText VARCHAR(max)
    )
GO
INSERT #tmp_errorlog  
EXEC sp_readerrorlog
GO
SELECT e.writeDate
    ,e.ProcessInfo
    ,e.MessageText
FROM #tmp_errorlog e
WHERE (
        e.MessageText LIKE 'DBCC CHECKTABLE%'
        AND e.MessageText LIKE 'DBCC CHECKDB%'
        AND e.MessageText LIKE '%found%'
        AND e.MessageText LIKE '%errors%'
        AND e.MessageText NOT LIKE '%found 0 errors%'
        )
 
DROP TABLE #tmp_errorlog