小编Reg*_*ser的帖子

存储过程EXEC与sp_executesql的区别?

我写了两个存储过程一个sp_executesql和其他没有sp_executesql都正确执行相同的结果,我没有得到这里有什么区别

EXEC(@SQL)vs EXEC sp_executesql @SQL,N'@ eStatus varchar(12)',@ eStatus = @Status

以及EXEC(@SQL)如何易于SQL注入和sp_executesql @SQL ......不是吗?

在没有sp_executesql的存储过程下面

ALTER proc USP_GetEmpByStatus
(
@Status varchar(12)
)
AS
BEGIN
DECLARE @TableName AS sysname = 'Employee'
Declare @Columns as sysname = '*'
DECLARE @SQL as nvarchar(128) = 'select ' + @Columns + ' from ' + @TableName + ' where Status=' + char(39) + @Status + char(39)
print (@SQL)
EXEC (@SQL)
END

EXEC USP_GetEmpByStatus 'Active'
Run Code Online (Sandbox Code Playgroud)

下面是sp_executesql的存储过程

create proc USP_GetEmpByStatusWithSpExcute
(
@Status varchar(12)
)
AS
BEGIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures sql-server-2008 sql-server-2012

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

这个查询创建逗号分隔列表SQL Server的作用是什么?

我在google的帮助下编写了这个查询,从表中创建了一个分隔列表,但我对此查询没有任何理解.

任何人都可以解释我发生了什么

 SELECT 
    E1.deptno, 
    allemp = Replace ((SELECT E2.ename AS 'data()' 
                       FROM emp AS e2 
                       WHERE e1.deptno = e2.DEPTNO 
                       FOR xml PATH('')), ' ', ', ') 
 FROM EMP AS e1 
 GROUP BY DEPTNO; 
Run Code Online (Sandbox Code Playgroud)

给我结果

10  CLARK, KING, MILLER
20  SMITH, JONES, SCOTT, ADAMS, FORD
30  ALLEN, WARD, MARTIN, BLAKE, TURNER, JAMES
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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

基于服务的数据库与SQL Server Compact和LocalDB?

我的目标是创建一个独立的C#Windows表单应用程序,其中包含2-3个表,这些表将安装在带有安装程序文件的客户端计算机上.我不想在客户端计算机上安装SQL Server 2008软件,我正在使用Visual Studio 2013 C#进行开发.

我的选择是SQL Server Compct 4.0,但我没有看到Visual Studio 2013内置了对它的支持,当我向项目中添加新项目时,我没有看到Compact(.sdf)文件选项.

我已经安装了第三方SQL Server Compact Toolbox,因此我可以创建.sdf文件和连接,但我相信Microsoft现在不支持compact db.

我可以看到基于服务的database(.mdf)文件实际上是一个LocalDb\\东西.

那么,如果我不想在客户端上安装SQL Server 2008但想在客户端软件上安装db,我应该使用什么?

c# sql-server visual-studio-2013

9
推荐指数
1
解决办法
8336
查看次数

此查询如何在执行计划中生成两个连接运算符?

在empno上具有集群唯一索引的表结构.

CREATE TABLE [dbo].[EMP](
    [EMPNO] [int] NOT NULL,
    [ENAME] [varchar](10) NULL,
    [JOB] [varchar](9) NULL,
    [MGR] [int] NULL,
    [HIREDATE] [datetime] NULL,
    [SAL] [int] NULL,
    [COMM] [int] NULL,
    [DEPTNO] [int] NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

询问

SELECT sal,sum(sal) over(PARTITION BY empno)
FROM emp
Run Code Online (Sandbox Code Playgroud)

查询计划

在此输入图像描述

sql-server join sql-server-2008 sql-execution-plan

5
推荐指数
1
解决办法
310
查看次数

具有like和where模式的列的索引?

我得出这样的结论,就像在下面的情况下确实寻找/扫描但我没有得到为什么它在第一种情况下扫描并在第二种情况下寻求.我理解第三种情况.

SELECT c.contactname FROM Sales.Customers c
WHERE c.contactname LIKE '%a'-- Does a Scan 1st Case

SELECT c.contactname FROM Sales.Customers c
WHERE c.contactname LIKE 'a%'-- Does a Seek 2nd Case

SELECT c.contactname FROM Sales.Customers c
WHERE c.contactname LIKE '%a%'-- Does a Scan
Run Code Online (Sandbox Code Playgroud)

如果我在contactname上建立一个索引,该索引具有以下样本数据,那么索引树将如何...就像我们为数字构建它将比较小于大于并且将遍历索引树将在下面的情况下遍历的方式.

c.contactname

mark
anna
krishna
nadejda
allen
bob
cab
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2008-r2

5
推荐指数
1
解决办法
187
查看次数

SQL Server交叉应用不起作用?

http://sqlfiddle.com/#!3/78273/1

create table emptb1
(
id int,
name varchar(20),
dept int
)

insert into emptb1 values (1,'vish',10);
insert into emptb1 values (2,'vish',10);
insert into emptb1 values (3,'vish',30);
insert into emptb1 values (4,'vish',20);

create table depttb1
(
id int,
name varchar(20)
)

insert into depttb1 values(10,'IT')
insert into depttb1 values(20,'AC')
insert into depttb1 values(30,'LIC')

select * from emptb1

select e.id, e.name, a.id
from emptb1 e
cross apply
(
select top 1 * from depttb1 d
where d.id = e.dept
order by …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 cross-apply

5
推荐指数
1
解决办法
4142
查看次数

为什么我们应该使用StringBuilder的ToString方法?

MSDN说我们需要将StringBuilder对象转换为string,但StringBuilder工作正常吗?我们为什么要转换?

string[] spellings = { "hi", "hiii", "hiae" };

StringBuilder Builder = new StringBuilder();

int counter = 1;

foreach (string value in spellings)
{
    Builder.AppendFormat("({0}) Which is Right spelling? {1}", counter, value);
    Builder.AppendLine();
    counter++;
}

Console.WriteLine(Builder); // Works Perfectly
//Why should i use tostring like below
Console.WriteLine(Builder.ToString());
// Does it make any difference in above two ways.

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

c# string stringbuilder tostring

4
推荐指数
1
解决办法
1960
查看次数

自动增量与唯一键区别当您将它们都放在一张表中时?

如果我在查询时没有在任何地方使用自动增量主键,那么表中的自动增量主键有什么用?

例如,我有一个表单,用户在其中注册自己的用户名/密码等,并填充如下表格。

user table

id int auto increment primary key
userid unique key 
passwd varchar
etc
etc
Run Code Online (Sandbox Code Playgroud)

每当我检查登录用户或任何其他查询时,我总是select * from tbname where userid = ? 在那里使用我有一个唯一索引,那么在 id 列上拥有主索引有什么用呢?

速度也会有差异吗?

编辑:我的用户名实际上是选择我注册的用户的用户名。

我已经在 mysql 和 sql server 下标记了这个问题,因为它可能属于两者。

php mysql sql sql-server sql-server-2008

3
推荐指数
1
解决办法
3041
查看次数

在sql中只获取字母数字行?

我列有数据

CLARK
KING
MILLER
SMITH, $800 .00
JONES, $2975.00
SCOTT, $3000.00
ADAMS, $1100.00
FORD, $3000.00
ALLEN30  
WARD30  
MARTIN30  
BLAKE30  
TURNER30  
JAMES30  
Run Code Online (Sandbox Code Playgroud)

我只想要字母数字行

SMITH, $800 .00
JONES, $2975.00
SCOTT, $3000.00
ADAMS, $1100.00
FORD, $3000.00
Run Code Online (Sandbox Code Playgroud)

除了这行,所有行都应包括在内?

我怎么能得到这个?

sql sql-server sql-server-2008

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

Clustered也会对物理数据和非聚集索引进行排序?

CREATE table comp_tb 
(
a tinyint
)


insert into comp_tb values('4')
insert into comp_tb values('1')
insert into comp_tb values('5')
insert into comp_tb values('6')
insert into comp_tb values('10')
insert into comp_tb values('3')
insert into comp_tb values('2')
insert into comp_tb values('8')


SELECT * from comp_tb ct --as order of insert 

create NONCLUSTERED INDEX NCI_a ON comp_tb(a)

SELECT * from comp_tb ct --sorts in acending order

drop INDEX NCI_a ON comp_tb

create CLUSTERED INDEX CI_a ON comp_tb(a)

SELECT * from comp_tb ct -- …
Run Code Online (Sandbox Code Playgroud)

sql sql-server indexing clustered-index non-clustered-index

2
推荐指数
1
解决办法
1414
查看次数