Tag: tsql

SQL Serverreplace,删除一定的字符后

我的数据看起来像 ID MyText 1 some text; some more text 2 text again; even more text 我怎样才能更新MyText放弃分号后,包括分号,所以我留下了以下内容: ID MyText 1 some text 2 text again 我已经看了SQL Server的replace ,但不能想到一个可行的方式来检查“;”

testing列存在,添加列和更新列

我正在尝试编写一个SQL Server数据库更新脚本。 我想testing表中是否存在列,如果不存在,则添加具有默认值的列,最后根据同一表中不同列的当前值更新该列。 我希望这个脚本可以多次运行,第一次更新表,并在随后的运行脚本应该被忽略。 我的脚本目前看起来如下所示: IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable') BEGIN ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0 UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL END SQL Server返回错误“无效的列名”IsDownloadable'“,即我需要提交DDL才能更新列。 我尝试了各种排列,但是我无法快速完成。

CTE错误:“锚点和recursion部分之间的types不匹配”

我正在执行以下声明: ;WITH cte AS ( SELECT 1 as rn, 'name1' as nm UNION ALL SELECT rn + 1, nm = 'name' + CAST((rn + 1) as varchar(255)) FROM cte a WHERE rn < 10) SELECT * FROM cte …完成错误… Msg 240, Level 16, State 1, Line 2 Types don't match between the anchor and the […]

如何在MS-SQL Server中的别名列上执行GROUP BY?

我试图通过对别名列(下面的示例) 的操作执行一个组,但无法确定正确的语法。 SELECT LastName + ', ' + FirstName AS 'FullName' FROM customers GROUP BY 'FullName' 什么是正确的语法? 编辑 进一步扩展问题(我没有预料到我收到的答案)该解决scheme是否仍然适用于CASEED别名列? SELECT CASE WHEN LastName IS NULL THEN FirstName WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName END AS 'FullName' FROM customers GROUP BY LastName, FirstName 答案是肯定的,它仍然适用。

SQL Server中的T-SQL STOP或ABORT命令

在Microsoft SQL Server T-SQL中是否有命令来告诉脚本停止处理? 我有一个脚本,我想保留用于存档的目的,但我不希望任何人运行它。

如何执行表值函数

我有以下函数返回表。 create Function FN(@Str varchar(30)) returns @Names table(name varchar(25)) as begin while (charindex(',', @str) > 0) begin insert into @Names values(substring(@str, 1, charindex(',', @str) – 1)) set @str = substring(@str, charindex(',', @str) + 1, 100) end insert into @Names values(@str) return end 请问任何人请解释我如何运行这个function。

如何在SQL Server数据库中一次性删除所有存储过程?

目前我们在脚本文件中为每个存储过程使用单独的drop语句: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MySP]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[MySP] 有没有一种方法可以将它们一次全部放下,也可以循环放置?

SQL国家字符(NCHAR)数据types的真正用途是什么?

除CHAR (CHARACTER)和VARCHAR (CHARACTER VARYING) ,SQL还提供NCHAR (NATIONAL CHARACTER)和NVARCHAR (NATIONAL CHARACTER VARYING)types。 在一些数据库中,这是用于字符(非二进制)string的更好的数据types: 在SQL Server中, NCHAR以UTF-16LE存储,是唯一能够可靠地存储非ASCII字符的方法, CHAR仅为单字节代码页; 在Oracle中, NVARCHAR可以存储为UTF-16或UTF-8而不是单字节整理; 但在MySQL中, NVARCHAR是VARCHAR ,所以没有区别,任何一种types都可以使用UTF-8或任何其他sorting规则进行存储。 那么,如果有的话, NATIONAL实际上在概念上是什么意思呢? 供应商的文档只会告诉你他们自己的DBMS使用什么字符集,而不是实际的基本原理。 与此同时,SQL92标准对function的解释甚至不那么有用,只说明NATIONAL CHARACTER存储在一个实现定义的字符集中。 与存储在实现定义的字符集中的单纯的CHARACTER相反。 这可能是一个不同的实现定义的字符集。 或不。 谢谢,ANSI。 Thansi。 是否应该为所有字符(非二进制)存储目的使用NVARCHAR ? 是否有目前stream行的数据库pipe理系统,它会做一些不可取的事情,或只是不认识关键字(或N''文字)?

SQL视图 – 没有variables?

是否有可能在视图中声明一个variables? 例如: Declare @SomeVar varchar(8) = 'something' 给我的语法错误: 关键字'Declare'附近的语法不正确。

如何使用sql从date字段按月分组

我怎样才能从一个date字段按月分组(而不是按天)? 这是我的date字段的样子: 2012-05-01 这是我目前的SQL: select Closing_Date, Category, COUNT(Status)TotalCount from MyTable where Closing_Date >= '2012-02-01' and Closing_Date <= '2012-12-31' and Defect_Status1 is not null group by Closing_Date, Category