标签: sql-server-2005

现实生活中的例子,何时在SQL中使用OUTER/CROSS APPLY

我一直在CROSS / OUTER APPLY和同事一起看,我们正在努力寻找现实生活中使用它们的例子.

我花了很多时间看看我何时应该使用Cross Apply而不是Inner Join?和谷歌搜索但主要(唯一)的例子似乎很奇怪(使用表中的行数来确定从另一个表中选择多少行).

我认为这种情况可能会受益于OUTER APPLY:

联系人表(每个联系人包含1条记录)通讯条目表(每个联系人可以包含n个电话,传真,电子邮件)

但是使用子查询,公共表表达式,OUTER JOINRANK()OUTER APPLY似乎都同样执行.我猜这意味着该方案不适用于APPLY.

请分享一些现实生活中的例子并帮助解释这个功能!

sql sql-server sql-server-2005 sql-server-2008

119
推荐指数
4
解决办法
16万
查看次数

如何在SQL表中复制记录但是换出新行的唯一ID?

这个问题接近我的需要,但我的情况略有不同.源表和目标表是相同的,主键是uniqueidentifier(guid).当我尝试这个:

insert into MyTable
    select * from MyTable where uniqueId = @Id;
Run Code Online (Sandbox Code Playgroud)

我显然遇到了主键约束违规,因为我试图复制主键.实际上,我根本不想复制主键.相反,我想创建一个新的.另外,我想有选择地复制某些字段,并将其他字段留空.为了使事情变得更复杂,我需要获取原始记录的主键,并将其插入副本中的另一个字段(PreviousId字段).

我确信有一个简单的解决方案,我只是不知道足够的TSQL知道它是什么.

sql t-sql sql-server sql-server-2005

118
推荐指数
6
解决办法
16万
查看次数

存储过程和视图之间有什么区别?

我对以下几点感到困惑:

  1. 存储过程和视图之间有什么区别?

  2. 我应该何时使用存储过程,何时应该在SQL Server中使用视图?

  3. 视图是否允许创建我们可以传递参数的动态查询?

  4. 哪一个最快,哪个基于哪一个比另一个快?

  5. 视图或存储过程是否永久分配内存?

  6. 如果有人说视图创建虚拟表,而程序创建材料表,这意味着什么?

如果有的话,请告诉我更多的要点.

sql stored-procedures sql-server-2005 views

118
推荐指数
8
解决办法
15万
查看次数

使用SQL Server 2008和SQL Server 2005以及日期时间

我已经针对2008数据库构建了一个实体框架模型.一切都适用于2008数据库.当我尝试更新2005数据库上的实体时,我收到此错误.

The version of SQL Server in use does not support datatype 'datetime2

我在构建数据库时没有使用任何2008功能.我在代码中找不到对datetime2的任何引用.并且,是的,该列在数据库中被定义为"datetime".

datetime entity-framework sql-server-2005 datetime2 sql-server-2008

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

Sql查询按天分组

我想列出所有销售,并按天分组.

Sales (saleID INT, amount INT, created DATETIME)
Run Code Online (Sandbox Code Playgroud)

更新 我正在使用SQL Server 2005

sql sql-server group-by sql-server-2005

117
推荐指数
6
解决办法
16万
查看次数

如何识别引用特定表的所有存储过程

我创建了一个关于开发环境的表用于测试目的,并且很少有sp正在重写这个表.现在我必须删除此表以及识别引用此表的所有sp.我很难找到所有sp的列表.请通过假设表名为"x"并且数据库是sql server 2005来建议一些查询.

sql t-sql sql-server-2005

117
推荐指数
8
解决办法
33万
查看次数

SQL Server 2005 T-SQL中的Base64编码

我想编写一个T-SQL查询,我将字符串编码为Base64字符串.令人惊讶的是,我找不到任何用于执行Base64编码的本机T-SQL函数.是否存在本机功能?如果没有,在T-SQL中进行Base64编码的最佳方法是什么?

t-sql base64 encoding sql-server-2005

116
推荐指数
5
解决办法
14万
查看次数

如何使用SQL查询更改表名?

如何使用查询语句更改表名?

我使用了以下语法,但在SQL Server 2005中找不到rename关键字.

Alter table Stu_Table rename to Stu_Table_10
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

115
推荐指数
5
解决办法
36万
查看次数

用户'DOMAIN\MACHINENAME $'登录失败

我知道这几乎是重复的:错误"登录失败,用户NT AUTHORITY\IUSR""在ASP.NET和SQL Server 2008用户登录失败"用户名" -在外部System.Data.SqlClient.SqlException与LINQ项目/类库但有些东西与我服务器上的其他应用程序相比并没有加起来,我不知道为什么.

正在使用的盒子:

Web Box
SQL框
SQL测试框

我的应用程序:

我有一个ASP.NET Web应用程序,它引用了一个使用LINQ-to-SQL的类库.连接字符串在类库中正确设置.按照在外部项目/类库System.Data.SqlClient.SqlException与LINQ -用户登录失败"用户名"我还添加了此连接字符串的Web应用程序.

连接字符串使用SQL凭据(在Web应用程序和类库中):

 <add name="Namespace.My.MySettings.ConnectionStringProduction"
        connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
        providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

此连接通过将其添加到服务器资源管理器确认为正常工作.这是我的.dbml文件正在使用的连接字符串.

问题:

我收到以下错误:

System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
Run Code Online (Sandbox Code Playgroud)

现在引用ASP.NET和SQL Server 2008中的错误"登录失败的用户'NT AUTHORITY\IUSR'"它说真的是本地网络服务并且使用任何其他非域名都不起作用.

但我很困惑,因为我检查了SQL Box和SQL Test Box SQL Management Studio,并且都NT AUTHORITY/NETWORK SERVICE在安全 - >登录,在数据库级别,未列在安全 - >用户下,但在数据库级别安全 - >用户我将用户显示在连接字符串中.

在Web服务器上的NTFS级别,权限使NETWORK SERVICE具有完全控制权.

我之所以感到困惑,是因为我的Web服务器上有许多其他Web应用程序,它们在SQL Box和SQL Test Box上引用数据库,它们都可以工作.但除了我使用类库之外,我找不到它们和我当前的应用程序之间的区别.那会有关系吗?检查NTFS权限,服务器和数据库级别的安全登录设置,连接字符串和连接方法(SQL Server凭据)以及IIS应用程序池和其他文件夹选项都是相同的.

为什么这些应用程序在没有将machinename $添加到我的任何一个SQL框的权限的情况下工作?但这就是一个链接告诉我要解决这个问题的方法.

.net sql-server iis-6 web-applications sql-server-2005

115
推荐指数
9
解决办法
16万
查看次数

WITH(NOLOCK)vs SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

可能有人给我时,我应该使用一些指导WITH (NOLOCK),而不是SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

每个的优点/缺点是什么?是否有任何意外的后果,你使用一个而不是另一个?

sql sql-server sql-server-2005

114
推荐指数
5
解决办法
13万
查看次数