Tag: sql server

如何查找SQL Server中所有数据库中的所有表的列名称

我想查找所有数据库中所有表中的所有列名称。 有没有可以为我做的查询? 数据库是Microsoft SQL Server 2000。

如何在SQL Server数据库中添加一个auto_increment主键?

我有一个表,目前没有主键。 我需要做的只是添加一个主键,没有null,auto_increment。 我正在使用Microsoft SQL Server数据库。 我明白,它不能在一个单一的命令,但我尝试每一个命令不断返回语法错误。 编辑————— 我已经创build了主键,甚至把它设置为非空。 但是,我不能设置auto_increment。 我试过了: ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment 我正在使用NVARCHAR,因为它不会让我在int下设置NOT NULL

SQL Server 2008 R2无法连接到Management Studio中的本地数据库

我正在使用SQL Server 2008 R2 Express。 我首先安装了SQL Server 2008 R2 Express Management Studio,然后安装了SQL Server 2008 R2 Express。 我有实例SQLEXPRESS运行,它被设置为自动。 我试图使用Windows身份validation本地连接到它 – 服务器名称设置为本地和用户名是灰色,并设置为我的configuration文件用户名。 当我尝试连接时出现以下错误: 我安装了错误的SQL Server Management Studio吗?

什么字符在SQL Server数据库名称中有效?

我们将为我们的客户提供一个工具(其中包括)创build一个新的SQL Server数据库,我希望能够对他们提供的数据库名称进行基本的validation。 SQL Server的文档解释了什么字符在数据库名称中是有效的。 但是,文档显然不正确,因为我可以成功地创build名称违反了文档规则的数据库。 根据SQL Server的CREATE DATABASE文档,数据库名称必须符合标识符的规则; 而标识符的规则取决于数据库的兼容性级别。 当兼容级别为100时(根据SQL Server Management Studio的意思是“SQL Server 2008”),名称必须以Unicode字母_ , @或#开头。 后跟一个或多个字母,数字, @ , $ , #或_ 。 文档中明确指出不允许embedded空格或特殊字符。 由于我可以使用SQL Server Management Studio来创build一个名为This & That | "Other"的数据库, This & That | "Other" – 它不仅包含embedded空格(明确禁止),而且包含特殊字符( | , " ),这些特殊字符甚至在文件名中都不是有效的。我检查了数据库的兼容级别确实是”SQL Server 2008 100)“,尽pipe其名称在该兼容级别被logging为无效。 哎呀,我甚至可以做CREATE DATABASE " " (是的,这是一个空格),这certificate第一个字符不一定是字母,下划线,符号或英镑符号。 所以我想我的问题是,哪些字符在SQL Server数据库名称中有效? 是否有与SQL […]

必须声明标量variables

@RowFrom int @RowTo int 都是存储过程的全局input参数,并且由于我正在使用T-SQL编译存储过程中的SQL查询,然后在存储过程结束时使用Exec(@sqlstatement)来显示结果,所以它给了我这个错误当我尝试使用@RowFrom或@RowTo里面的@sqlstatementvariables被执行..否则工作正常..请帮助。 "Must declare the scalar variable "@RowFrom"." 另外,我尝试在@sqlstatementvariables中包含以下内容: 'Declare @Rt int' 'SET @Rt = ' + @RowTo 但@RowTo仍然不会将其值传递给@Rt并生成一个错误。

什么时候“不”不是否定?

为什么下面的两个返回零? 第二个肯定是第一个的否定? 我正在使用SQL Server 2008。 DECLARE @a VARCHAR(10) = NULL , @b VARCHAR(10) = 'a' SELECT CASE WHEN ( ( @a IS NULL AND @b IS NULL ) OR @a = @b ) THEN 1 ELSE 0 END , — Returns 0 CASE WHEN NOT ( ( @a IS NULL AND @b IS NULL ) […]

如何在SQL Server中使用RANK()

我在使用SQL Server中的RANK()遇到问题。 这是我的代码: SELECT contendernum, totals, RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank FROM ( SELECT ContenderNum, SUM(Criteria1+Criteria2+Criteria3+Criteria4) AS totals FROM Cat1GroupImpersonation GROUP BY ContenderNum ) AS a 该查询的结果是: contendernum totals xRank 1 196 1 2 181 1 3 192 1 4 181 1 5 179 1 我期望的结果是: contendernum totals xRank […]

DateTimeOffset.Now在T-SQL中

我正在执行一个SQL 2008数据库的INSERT。 如何在T-SQL中指定在DATETIMEOFFSET列中插入NOW? GETDATE()?

在SQL Server Management Studio中右键单击脚本alter table

我想将一个表脚本编写成一个新的查询编辑器窗口。 但是这个选项是禁用的。 我怎样才能做到这一点?

ANSI与非ANSI SQL JOIN语法

我拥有大约7000行T-SQL存储过程的业务逻辑,其中大部分都有下一个JOIN语法: SELECT AA, BB, CC FROM aaa AS A, bbb AS B, ccc AS C WHERE AB = B.ID AND BC = C.ID AND C.ID = @param 如果我用这个replace这样的查询,我会得到性能增长吗: SELECT AA, BB, CC FROM aaa AS A JOIN bbb AS B ON AB = B.ID JOIN ccc AS C ON BC = C.ID AND C.ID = […]