1、在C#程序中执行查询时总是超时,检查代码没问题
如果程序中使用的是SqlDbType.VarChar,但是在数据库存储中使用的数据类型是NVarChar,即类型不一致的话,也会导致查询超时
2、提示“当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值”,就是想修改表里自增列的值
----执行语句前打开,user 替换成对应的表名
set identity_insert user ON----执行语句后关闭,Code_Main替换成对应的表名
set identity_insert user OFF
3、使用 ISNUMERIC 函数判断字段值的是否为数字,加上强转后报错“在将nvarchar值'2322,99'转换成数据类型int时失败”
----下面这种写法会报错
select case when ISNUMERIC(testnum) = 1 then testnum else 0 end from
kk_money where CG_ZhongBiaoGS.testnum ='2322.99'----改成下面这种就可以了,将 else 0 改为 else '0',
select case when ISNUMERIC(testnum) = 1 then testnum else '0' end from
kk_money where kk_money.testnum ='2322.99'----原因解释:
----因为这里的 case when 的返回值有两种,一种是返回testnum也就是nvarchar型,
----另一种返回的是0是int型,但是这两种返回值最后都要作用于同一个字段,现在两个字段类型都不一样了,作用于同一个字段肯定不行,所以sqlserver本身会去尝试做转换,把testnum类型转换为int型,但是这里2322.99无法直接转为int,所以就直接报错了
4、使用SqlServer自带的连接工具连接时,如果对方的数据库端口并不是默认值1433,那么连接端的配置如下
注意!!! IP和端口之间是英文逗号
5、查询xml字段,发现复制出来的数据是缺失的
原因:从数据库复制出来的字符长度有限制解决:将查询出来的结果,另存为文本,保存到txt文件中即可
6、把一个IP的数据库数据复制到另一个IP的数据库
---1、首先要启用 Ad Hoc Distributed Queries ,否则无法连接远程
---启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
----关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure2、远程连接并导入表
select * into new_attachs.dbo.kk_attach from
openrowset( 'SQLOLEDB ', '111.111.111.111,1433 '; 'sa'; 'sa',attachs.dbo.kk_attach)
7、查询结果导出csv文件时,某列内容比较多时被自动分割成了多列
-----在自动被分割的字段前后加上 '"' 即可,注意里面的双引号是英文的
select '"'+OperateStep+'"' '操作简述','"'+OperateContent+'"' '详细操作内容',
'"' + name + '"' '地址', OperateName '操作人',OperateUnit
'操作人所属单位/部门',Operatetime '操作时间',fromip 'IP地址'
from Sys_Log
8、日期格式形如 11 01 2018 00:00AM 怎么处理
---1、这种情况一般都是数据库字段格式是字符串,一般转为日期格式后就可以了
CAST(shijian as DateTime)
---2、如果转为日期格式后,还是不行,那么再使用下面的
CONVERT(varchar(100), GETDATE(), 120)
---3、需要注意的是:用Convert只能把是DateTime类型的转换成指定格式