Tag: sql server

如何复制SQL表中的logging,但换出新行的唯一ID?

这个问题接近我所需要的,但是我的情况稍有不同。 源表和目标表是相同的,主键是唯一标识符(guid)。 当我尝试这个: insert into MyTable select * from MyTable where uniqueId = @Id; 我显然得到主键约束违规,因为我试图通过主键复制。 其实我根本不想复制主键。 相反,我想创造一个新的。 此外,我想有select地复制某些字段,并将其他字段留空。 为了使事情更复杂,我需要把原始logging的主键,并将其插入副本(PreviousId字段)中的另一个字段。 我确信有一个简单的解决scheme,我只是不知道足够的TSQL知道它是什么。

如何findMS SQL Server 2008的端口?

我在本地机器上运行MS SQL Server 2008。 我知道默认的端口是1433,但有些如何不在这个端口监听。 SQL是一个Express版本。 我已经尝试过日志,SQL Server Management Studio,registry和扩展存储过程来查找端口。 但是,我找不到它。 请帮帮我。 谢谢。

相当于MySQL枚举数据types的SQL Server?

SQL Server 2008有一个像MySQL的enum数据types?

将主键添加到现有表

我有一个名为Persion的现有表。 在这个表中我有5列: persionId PNAME PMID Pdescription PAMT 当我创build这个表时,我将PersionId和Pname设置为主键。 我现在想要在主键 – PMID中添加一列。 我怎样才能写一个ALTER语句来做到这一点? (我已经在表中有1000条logging)

一个LEFT OUTER JOIN如何能够返回比左表更多的logging?

我有一个非常基本的左外连接从左表中返回所有结果和一个更大的表中的一些额外的信息。 左表中包含4935条logging,当我左外部连接到一个额外的表logging数显着大。 据我所知,这是一个绝对的福音,一个LEFT OUTER JOIN将从左表中返回所有logging,右表中的匹配logging返回所有logging,任何不能匹配的行都返回null值,这是我的理解,它应该不可能返回比左边的表中更多的行,但是它们都是一样的! SQL查询如下: SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum 也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解是不完整的,不pipe我在这里发疯的原因是什么,希望有人能解释这可能是怎么发生的? 后记 感谢grea的回答,我对LEFT OUTER JOINS的理解现在好多了,但是谁能提出这样一个查询可以被修改的方法,这样我只能得到左表中返回的logging数量呢? 这个查询纯粹是为了生成一个报告,重复的匹配只是混淆了事情。 /后记

如何查看SSMS中ntext或nvarchar(max)的所有文本?

如何在SQL Server Management Studio中查看NTEXT或NVARCHAR(max)中的所有文本? 默认情况下,它似乎只返回前几百个字符(255?),但有时我只想快速查看整个字段,而不必编写程序来完成。 即使SSMS 2012仍然有这个问题:(

如何捕获SQLServer超时exception

我需要专门捕获SQL Server超时exception,以便可以以不同方式处理它们。 我知道我可以捕获SqlException,然后检查消息string是否包含“超时”,但想知道是否有更好的方法来做到这一点? try { //some code } catch (SqlException ex) { if (ex.Message.Contains("Timeout")) { //handle timeout } else { throw; } }

在SQL中更改表的模式名称

我想在数据库中更改表Employees模式名称。 在当前表Employees数据库架构名称是dbo我想将其更改为exe 。 我该怎么做 ? 例: 从 dbo.Employees 至 exe.Employees 我试着用这个查询: ALTER SCHEMA exe TRANSFER dbo.Employees 但是这给了我一个错误: 无法更改模式“exe”,因为它不存在或您没有权限。 我错过了什么?

如何检查表是否存在,如果它不存在sql server 2008中创build表

我正在写一个SQL Server 2008中的Stored procedure我需要检查数据库中是否存在一个table ,如果它不,那么我需要创build它。 我该怎么做?

更改一个varchar列的最大长度?

我试图将255个字符的varchar列的长度更新为500,而不会丢失内容。 我之前已经删除并重新创build了表,但是我从来没有接触到alter语句,这是我相信我需要用到的。 我在这里find了这个文档: ALTER TABLE(Transfact-SQL),但是我不能使它正面或者反面 。 到目前为止,我有以下(基本上没有什么不幸): alter table [progennet_dev].PROGEN.LE alter column UR_VALUE_3 我如何处理这个? 有没有更好的文件,这个声明在那里(我做了一些示例语句的search,但空了)?