标签归档:MSSQL

mssql sqlserver关于sql语句中加 1=1 的条件的功能说明


摘要:
在sql脚本编写中,我们经常发现一些sql条件在检索时,都会在where条件后加入1=1的相关说明,
那么1=1的具体功能是什么呢? 下文将通过举例的方式,一一讲述1=1的功能

1=1 恒等式被加入条件时,表示检索永远为真,
1=1 检索条件主用于拼接字符串时, 可避免后面的条件都为空时,导致where查询条件操作异常.

例:

    declare @sql nvarchar(4000)
    set @sql ='
    select * from [数据表]
     where 1=1 '

    if [条件1] !=''
    begin
     set @sql = @sql +' and [列1] ='''+[条件1]+''' '
    end
    
    if [条件2] !=''
    begin
     set @sql = @sql +' and [列2] ='''+[条件2]+''' '
    end
 

mssql sqlserver date及datetime数据类型简介说明


摘要:
下文讲述sqlserver中表示日期的数据类型 date及datetime,如下所示:
实验环境:sql server 2008 R2



date数据类型简介

date数据类型是sqlserver2008中新加入的一种数据类型,此数据类型只包含日期部分,无时间部分
date数据类型可存储的时间范围为:
0001-1-1 ~ 9999-12-31
date 数据类型占用3个字节的存储空间

datetime数据类型简介

datetime 数据类型是sqlserver中表示一个 日期和时间部分
datetime 可表示的时间范围为:
1753-1-1 0:00:00 ~ 9999-12-31 23:59:59.997
datetime 数据类型,可精确到3.33毫秒
datetime 数据类型默认值为 1900-1-1 0:00:00
datetime 数据类型占用 8个字节

mssql sqlserver 使用sql脚本将“数据表”生成指定实体类的方法分享


摘要:
下文讲述使用sql脚本将数据表生成实体类的方法分享,如下所示:
实验环境:sql server 2008 R2



实现思路:
主要通过遍历 系统表 sys.columns和 sys.types 表,然后通过case语句将查询的列转换为相应格式的c#代码,如下所示:

例:

    


---1.新建数据表 maomao365.com

create table [maomao365.com]
(keyId int identity,
 info  varchar(30) not null ,
 writeDate datetime not null  )
 go
 


declare @TableName sysname = '[maomao365.com]'   ---数据表名称

declare @classInfo varchar(max) = 'public class ' + @TableName + '
{'

select @classInfo = @classInfo + '
    public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
from
(
    select
        replace(col.name, ' ', '_') ColumnName,
        column_id ColumnId,
        case typ.name
            when 'bigint' then 'long'
            when 'binary' then 'byte[]'
            when 'bit' then 'bool'
            when 'char' then 'string'
            when 'date' then 'DateTime'
            when 'datetime' then 'DateTime'
            when 'datetime2' then 'DateTime'
            when 'datetimeoffset' then 'DateTimeOffset'
            when 'decimal' then 'decimal'
            when 'float' then 'float'
            when 'image' then 'byte[]'
            when 'int' then 'int'
            when 'money' then 'decimal'
            when 'nchar' then 'char'
            when 'ntext' then 'string'
            when 'numeric' then 'decimal'
            when 'nvarchar' then 'string'
            when 'real' then 'double'
            when 'smalldatetime' then 'DateTime'
            when 'smallint' then 'short'
            when 'smallmoney' then 'decimal'
            when 'text' then 'string'
            when 'time' then 'TimeSpan'
            when 'timestamp' then 'DateTime'
            when 'tinyint' then 'byte'
            when 'uniqueidentifier' then 'Guid'
            when 'varbinary' then 'byte[]'
            when 'varchar' then 'string'
            else 'UNKNOWN_' + typ.name
        end ColumnType,
        case
            when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier')
            then '?'
            else ''
        end NullableSign
    from sys.columns col
        join sys.types typ on
            col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
    where object_id = object_id(@TableName)
) t
order by ColumnId

set @classInfo = @classInfo  + '
}'

print @classInfo

go

truncate table [maomao365.com]
drop table [maomao365.com]

mssql_sqlserver_数据表生成实体类方法_9408

mssql_sqlserver_数据表生成实体类方法_9408


相关阅读:
mssql sqlserver数据类型同c#数据类型之间的对应关系分享