标签: sql-server

使用Contains()时达到2100参数限制(SQL Server)

from f in CUSTOMERS
where depts.Contains(f.DEPT_ID)
select f.NAME
Run Code Online (Sandbox Code Playgroud)

deptsIEnumerable<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()修复错误但使查询变慢.有没有其他方法可以解决这个问题?非常感谢.

linq sql-server parameters limit

57
推荐指数
2
解决办法
6万
查看次数

如果SQL Server作业已在运行,它是否会跳过计划的运行?

如果您安排SQL Server作业每隔X分钟运行一次,并且在分钟数达到之前它没有完成上一次调用,它是否会跳过运行,因为它已在运行,或者它将运行两个实例工作做同样的步骤?

sql sql-server sql-server-agent scheduled-tasks

57
推荐指数
2
解决办法
2万
查看次数

如何基于2列创建SQL唯一约束?

我有一个像这样的表:

|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

57
推荐指数
3
解决办法
5万
查看次数

如何阻止SQLServer编写无关的东西,例如(1行受影响)

是否有一个命令我可以在我的SQL脚本中运行,以便它停止输出有关每个运行的操作的信息?

即我不想看到这个:

(1 row(s) affected)

(1 row(s) affected)

(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

57
推荐指数
2
解决办法
4万
查看次数

DROP ... CREATE vs ALTER

在创建存储过程,视图,函数等时,最好对对象执行DROP ... CREATE或ALTER吗?

我已经看过许多"标准"文件,说明要做DROP ... CREATE,但我看到了许多提倡ALTER方法的评论和论据.

ALTER方法保留了安全性,而我听说DROP ... CREATE方法在第一次执行时强制重新编译整个SP而不仅仅是一个语句级别的重新编译.

有人可以告诉我,如果使用一个优于另一个有其他优点/缺点吗?

sql t-sql sql-server

57
推荐指数
4
解决办法
3万
查看次数

为什么我不能在count(*)"column"中使用别名并在having子句中引用它?

我想知道为什么我不能在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(*)代替它.

sql sql-server alias

57
推荐指数
3
解决办法
7万
查看次数

SQL Server:IF EXISTS; 其他

我有一张桌子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不存在!请教育!提前致谢

sql sql-server if-statement exists

57
推荐指数
2
解决办法
56万
查看次数

目录,架构,用户和数据库实例之间的关系

要比较不同供应商(Oracle,SQL Server,DB2,MySQL和PostgreSQL)的数据库,如何唯一地识别任何对象,我是否需要目录?例如,在Java的DatabaseMetadata中,我应该至少指定目录和模式fooPattern.

目录只是数据存储的抽象是真的吗?

mysql sql-server oracle db2 postgresql

57
推荐指数
2
解决办法
4万
查看次数

如何在SQL Server Management Studio中查看存储过程代码

我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.

我有一个存储过程列表.如何查看存储过程代码?

右键单击存储过程没有任何选项view contents of stored procedure.

谢谢.

t-sql sql-server ssms

57
推荐指数
7
解决办法
19万
查看次数

SELECT ... FOR XML PATH(''),1,1)是什么意思?

我在其中一个问题中 学习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 sql-server

57
推荐指数
2
解决办法
8万
查看次数