Tag: sql server 2005

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

我对以下几点感到困惑: 存储过程和视图有什么区别? 什么时候应该使用存储过程,以及在SQL Server中何时使用视图? 视图允许创builddynamic查询,我们可以传递参数吗? 哪一个是最快的,基于哪一个比另一个更快? 视图或存储过程是否永久分配内存? 这是什么意思,如果有人说视图创build一个虚拟表,而程序创build一个材料表? 请让我知道更多的点,如果有的话。

我可以在脚本或存储过程中创build一次性使用function吗?

在SQL Server 2005中,是否有一个一次性使用的概念,或在SQL脚本或存储过程中声明的本地函数? 我想在我正在编写的脚本中抽象出一些复杂性,但是它需要能够声明一个函数。 只是好奇。 谢谢!!

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

为了testing目的,我创build了一个开发环境表,有几个sp正在修复这个表。 现在我必须删除这个表格,并且确定所有引用这个表格的sp。 我很难find所有sp的列表。 请通过假设表名是'x'和数据库是sql server 2005来build议一些查询。

MySQL的SQL Server 2005实现REPLACE INTO?

MySQL有这个令人难以置信的有用的REPLACE INTO SQL命令。 这可以很容易地在SQL Server 2005中模拟? 开始一个新的事务,做一个Select()然后UPDATE或INSERT和COMMIT总是有点痛苦,特别是当在应用程序中执行它,因此始终保持语句的两个版本。 我想知道是否有一个简单而通用的方法来实现这样的function到SQL Server 2005中?

使用INSERT INTO插入多个值(SQL Server 2005)

在SQL Server 2005中,我试图找出为什么我无法将多个字段插入到表中。 以下查询插入一个logging,工作正常: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test') 但是,以下查询(指定多个值)失败: INSERT INTO [MyDB].[dbo].[MyTable] ([FieldID] ,[Description]) VALUES (1000,N'test'),(1001,N'test2') 我得到这个消息: Msg 102, Level 15, State 1, Line 5 Incorrect syntax near ','. 当我在SQL Sever Management Studio中查询INSERT的帮助时,他们的一个例子显示了我使用的“Values”语法(用括号括起来并用逗号分隔)。 我在SQL Server Management Studio中find的帮助文档看起来像SQL Server 2008,所以也许这就是插入不起作用的原因。 无论哪种方式,我不明白为什么它不会工作。

SQL Server“文本”数据types的WHERE子句

在SQL Server中将[CastleType]设置为数据types“text”,查询为: SELECT * FROM [Village] WHERE [CastleType] = 'foo' 我得到的错误: 数据typesTEXT和VARCHAR在等于运算符中是不兼容的。 我不能用WHERE子句查询这个数据types吗?

SELECT FOR UPDATE与SQL Server

我正在使用隔离级别为READ_COMMITTED和READ_COMMITTED_SNAPSHOT=ON的Microsoft SQL Server 2005数据库。 现在我想用: SELECT * FROM <tablename> FOR UPDATE …以便在尝试访问同一行“FOR UPDATE”时阻止其他数据库连接。 我试过了: SELECT * FROM <tablename> WITH (updlock) WHERE id=1 …但是即使select“1”以外的其他连接也会阻止其他连接。 对于Oracle,DB2,MySql而言,执行SELECT FOR UPDATE的正确提示是什么? 编辑2009-10-03: 这些是创build表和索引的语句: CREATE TABLE example ( Id BIGINT NOT NULL, TransactionId BIGINT, Terminal BIGINT, Status SMALLINT ); ALTER TABLE example ADD CONSTRAINT index108 PRIMARY KEY ( Id ) CREATE […]

如何查询数据库模式是否存在

作为构build过程的一部分,我们运行数据库更新脚本,因为我们将代码部署到4个不同的环境。 此外,由于相同的查询将被添加,直到我们将发布放入生产,它必须能够在给定的数据库上运行多次。 喜欢这个: IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = OBJECT_ID(N'[Table]')) BEGIN CREATE TABLE [Table] (…) END 目前我在部署/构build脚本中有一个create schema语句。 我在哪里查询模式的存在?

通过在不同服务器上的两个数据库中连接两个表来查询数据

在不同的服务器上的两个不同的数据库中有两个表,我需要join他们,以便作出几个查询。 我有什么select? 我该怎么办?

什么是SQL Server Profiler中的“审计注销”?

我正在运行数据导入(使用C#/ Linq),自然我试图尽可能优化我的查询。 为此,我使用SQL Server Profiler在数据库上运行跟踪,跟踪由我的SQLlogin名(这是一个可以唯一归因于我的数据导入过程的名称)过滤。 奇怪的是,我的大部分SQL语句真的很快:) – 很less有查询甚至打破了1毫秒的标记。 但是,在所有查询之间的间隔是EventClass为“审计login”或“审计注销”的几行,而“审计注销”的持续时间可以达到一分钟! 这是否与我在我的导入中使用事务的事实有关? 如果是这样,是否有任何方法可以find哪些是最大的查询,所以我可以清理这些?