from f in CUSTOMERS
where depts.Contains(f.DEPT_ID)
select f.NAME
Run Code Online (Sandbox Code Playgroud)
depts是IEnumerable<int>部门ID 的列表()
这个查询工作正常,直到你传递一个大的列表(比如大约3000 dept ids)..然后我得到这个错误:
传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.此RPC请求中提供的参数太多.最高为2100.
我将查询更改为:
var dept_ids = string.Join(" ", depts.ToStringArray());
from f in CUSTOMERS
where dept_ids.IndexOf(Convert.ToString(f.DEPT_id)) != -1
select f.NAME
Run Code Online (Sandbox Code Playgroud)
使用IndexOf()修复错误但使查询变慢.有没有其他方法可以解决这个问题?非常感谢.
如果您安排SQL Server作业每隔X分钟运行一次,并且在分钟数达到之前它没有完成上一次调用,它是否会跳过运行,因为它已在运行,或者它将运行两个实例工作做同样的步骤?
我有一个像这样的表:
|UserId | ContactID | ContactName
---------------------------------------
| 12456 | Ax759 | Joe Smith
| 12456 | Ax760 | Mary Smith
| 12458 | Ax739 | Carl Lewis
| 12460 | Ax759 | Chuck Norris
| 12460 | Bx759 | Bruce Lee
Run Code Online (Sandbox Code Playgroud)
我需要为此表添加一个约束,以便没有用户可以拥有重复的联系人ID.用户正在从各种外部系统导入数据,因此ContactId不是全面唯一的,但在每个用户的基础上是唯一的.
我知道如何基于单列创建唯一和非空的约束,但是如何在2列中创建唯一的约束?
sql-server sql-server-2005 constraints unique-constraint sql-server-2008
是否有一个命令我可以在我的SQL脚本中运行,以便它停止输出有关每个运行的操作的信息?
即我不想看到这个:
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud) 在创建存储过程,视图,函数等时,最好对对象执行DROP ... CREATE或ALTER吗?
我已经看过许多"标准"文件,说明要做DROP ... CREATE,但我看到了许多提倡ALTER方法的评论和论据.
ALTER方法保留了安全性,而我听说DROP ... CREATE方法在第一次执行时强制重新编译整个SP而不仅仅是一个语句级别的重新编译.
有人可以告诉我,如果使用一个优于另一个有其他优点/缺点吗?
我想知道为什么我不能在count(*)中使用别名并在having子句中引用它.例如:
select Store_id as StoreId, count(*) as _count
from StoreProduct
group by Store_id
having _count > 0
Run Code Online (Sandbox Code Playgroud)
不会工作..但如果我删除_count并使用count(*)代替它.
我有一张桌子A:
ID value
1 100
2 101
2 444
3 501
Run Code Online (Sandbox Code Playgroud)
表B
ID Code
1
2
Run Code Online (Sandbox Code Playgroud)
现在,如果tableA中存在ID = 2,我想填充表B的col =代码.对于多个值,获取最大值.否则用'123'填充它.现在这是我使用的:
if exists (select MAX(value) from #A where id = 2)
BEGIN
update #B
set code = (select MAX(value) from #A where id = 2)
from #A
END
ELSE
update #B
set code = 123
from #B
Run Code Online (Sandbox Code Playgroud)
我确信在BEGIN; END或IF EXIST; ELSE中存在一些问题.基本上,如果IF部分中的select语句存在,我想绕过else部分,反之亦然.例如,如果IF = part的select语句是:
(select MAX(value) from #A where id = 4)
Run Code Online (Sandbox Code Playgroud)
它应该只填充123,因为ID = 4不存在!请教育!提前致谢
要比较不同供应商(Oracle,SQL Server,DB2,MySQL和PostgreSQL)的数据库,如何唯一地识别任何对象,我是否需要目录?例如,在Java的DatabaseMetadata中,我应该至少指定目录和模式fooPattern.
目录只是数据存储的抽象是真的吗?
我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.
我有一个存储过程列表.如何查看存储过程代码?
右键单击存储过程没有任何选项view contents of stored procedure.
谢谢.
我在其中一个问题中 学习sql,在这里我看到了这个用法,有些机构能让我理解xml路径('')在sql中的含义吗?是的,我通过网页浏览,我不太了解它!
我没有得到东西,现在这段代码做了什么?(只是select部分)
declare @t table
(
Id int,
Name varchar(10)
)
insert into @t
select 1,'a' union all
select 1,'b' union all
select 2,'c' union all
select 2,'d'
select ID,
stuff(
(
select ','+ [Name] from @t where Id = t.Id for XML path('')
),1,1,'')
from (select distinct ID from @t )t
Run Code Online (Sandbox Code Playgroud) sql-server ×10
sql ×5
t-sql ×3
alias ×1
constraints ×1
db2 ×1
exists ×1
if-statement ×1
limit ×1
linq ×1
mysql ×1
oracle ×1
parameters ×1
postgresql ×1
ssms ×1