• 2024年1月19日

Sql Server执行拼接Sql提示the name ” is not a valid identifier.

Sql Server在执行拼接出来的Sql语句时,会提示: the name ‘select …..’ is not a valid identifier. 例如: 提示: the name ‘select * from table1’ is not a valid identifier. 原因: exec 将@sql参数当作存储过程名称, 解决方法:给Sql加上括号即可

详细内容

Sql Server定义表参数及设定索引

DECLARE @t TABLE(id int identity(1,1) primary key –自增字段,主键,name NVARCHAR(50) default(N”) –普通字段,默认值为空,birthday datetime –日期字段,未设默认值,index i1 nonclustered (name) –索引,使用name作为非聚合索引) 写Sql存储过程时会用到table类型的参数,按照官方的意见是数据量100行以内可以使用这个,超过就建议使用临时表。 对于数据量多的,可以考虑给参数表增加个索引,定义方式如上。

详细内容

sql查询使用inner join出现重复数据问题

inner join 的表会把该表符合on条件的数据全部列出来与前面的表、inner join表数据形成多余的数据例如:select * from table1 t1inner join table2 t2 on t2.col1 = t1.col1 and t2.col2=t2.col2where t1. col3=’x’ 结果会出现单独查询 select * from table1 where col3=’x’ 只有1条记录但是因为table2存在100条 t2.col2=t1.col2 and t2.col1=t1.col1 导致上面的inner join语句执行完会出现100条记录

详细内容

SqlSugar的GetList时提示Operand should contain 1 column(s)

给魔码挪车小程序写webapi某个功能时,写了如下代码: return base.GetList(it=>ids.Length>0 && SqlFunc.ContainArray(ids,it.Id)) 报错:Operand should contain 1 column(s) 经百度,提示是in子查询时出现了2个字段(in (select id,true from [xxx] where ….)) 所以上面修改为: return base.GetList(it=> SqlFunc.ContainArray(ids,it.Id)) 问题解决

详细内容

sql语句分页查询

select * from [tablename]  order by colname desc offset 要跳过的行数(一般是pagenum x pagesize) rows fetch next 要读取的行数(一般是pagesize) rows only 例如: select * from [user] order by id desc offset 40 rows fetch next 20 rows only 读取user表id倒序后41行起20行数据

详细内容

Sql修改字段长度

一般直接用Sql管理工具修改字段长度,会提示权限错误! 可以考虑用Alter来修改,而且一般情况字串长度从短改成长不会损害数据! ALTER TABLE users ALTER COLUMN email nvarchar(80) NULL; 表示把users表中的email字段重新定义为nvarchar类型,长度为80,允许null!  

详细内容

select count的统计某字段数据分别重复次数语句

表 A id      name   city 1     李先生    福州 2    王先生    厦门 3    张三    广州 4    李四    厦门 5    王五    福州 6     赵六    厦门 如果要统计厦门有几个人,福州有几个人,可以使用如下语句: select count(*) as c,city from [a] group by city order by c desc 可以得到如下结果 c     city 3   厦门 2  福州 1  广州    

详细内容