Tag: sql server 2005

在SQL Server的select语句中使用TOPvariables而不使其dynamic化

declare @top int set @top = 5 select top @top * from tablename 可能吗? 或者任何想法这样的逻辑(我不想使用dynamic查询)?

如何仅在sql server中存在外键约束?

我可以删除一个表,如果它存在使用下面的代码,但不知道如何做一个约束: IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName go 我也使用这个代码添加约束: ALTER TABLE [dbo].[TableName] WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name]) REFERENCES [dbo].[TableName2] ([ID]) go

使用存储过程检查一个string是否包含SQL Server 2005中的子string

我有一个string, @mainString = 'CATCH ME IF YOU CAN' 。 我想检查单词ME是否在@mainString 。 如何检查一个string是否在SQL中有特定的子string?

“防止保存需要重新创build表的更改”的负面影响

前言 我今天正在修改SQL Server 2008中的列,将数据types从货币(18,0)更改为(19,2)。 我从SQL Server得到错误“您所做的更改需要删除和重新创build下列表”。 在您抢答之前,请阅读以下内容: 我已经知道在工具►选项►devise器►表格和数据库devise器中有选项►取消选中 “保存需要重新创build表格的更改” checkbox 。 …所以不要回答这个! 实际的问题 我的实际问题是其他的东西,如下所示: 这样做是否有任何负面影响/可能的弊端? 当这个框被取消选中时,表是否实际上被丢弃和重新创build? 如果是这样,表是否复制了源表的100%完全相同的副本?

SQL Server中左连接和右连接的区别

我知道在SQL Server中的连接。 例如。 有两个表格Table1,Table2。 有表结构如下。 create table Table1 (id int, Name varchar (10)) create table Table2 (id int, Name varchar (10)) 表1数据如下: Id Name ————- 1 A 2 B 表2数据如下: Id Name ————- 1 A 2 B 3 C 如果我执行下面提到的SQL语句,两个输出将是相同的 select * from Table1 left join Table2 on Table1.id = Table2.id select * from Table2 […]

SQL Server – SELECT FROM存储过程

我有一个存储过程返回行: CREATE PROCEDURE MyProc AS BEGIN SELECT * FROM MyTable END 我的实际过程稍微复杂一点,这就是为什么必须有一个存储过程。 可以通过调用这个过程来select输出吗? 就像是: SELECT * FROM (EXEC MyProc) AS TEMP 我需要使用SELECT TOP X , ROW_NUMBER和一个额外的WHERE子句来页面我的数据,我真的不想传递这些值作为参数。

将SQL Server数据库脱机的极度等待时间

我试图在我的开发数据库上执行一些脱机维护(从活动备份开始数据库恢复),但是通过SQL Server Management Studio执行的“脱机”命令的执行速度非常慢,大约在30分钟以上。 我只是在我的智慧结束,我似乎无法find任何网上提到什么可能会导致速度问题,或如何解决它。 一些网站build议开放连接到数据库导致这种放缓,但使用这个数据库的唯一应用程序是我的开发机器的IIS实例,服务停止 – 没有更多的开放连接。 有什么可能导致这种放缓,我能做些什么来加速呢?

如何避免SQL中的“除以零”错误?

我有这个错误消息: Msg 8134, Level 16, State 1, Line 1 Divide by zero error encountered. 编写SQL代码的最佳方法是什么,以便我再也不会看到这个错误消息了? 我可以做以下任何一项: 添加一个where子句,使我的除数永远不为零 要么 我可以添加一个case语句,以便有一个特殊的零处理。 是使用NullIf子句的最佳方法? 有没有更好的办法,或者如何执行?

如何在SQL Management Studio中指定不同的端口号?

我尝试连接到不在端口1433上的Microsoft SQL 2005服务器。如何在使用SQL Management Studio连接到服务器时指示不同的端口号?

检查临时表是否存在,并在创build临时表之前删除它(如果存在)

我正在使用下面的代码来检查临时表是否存在,并删除表,如果它存在之前再次创build。 只要我不改变列,它工作正常。 如果我稍后添加一列,它会给出一个错误说“无效列”。 请让我知道我做错了什么。 IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, ) select company, stepid, fieldid from #Results –Works fine to this point IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, NewColumn NVARCHAR(50) ) […]