尽我所能,我无法获得RegEx来排除空格或单引号.
如果我在SQL中,我会使用PATINDEX.
如果我可以否定的话,或者不是空格或单引号的正面匹配......
我试过了(仅限单引号)
\w*[^']\w*^\w*[^']\w*$请把我从痛苦中解救出来让我今晚能入睡.
编辑:
我可以在非空字段中插入空字符串吗?
insert into xyz(A,B) values(1,''); // is this possible if B is NOT NULL?
Run Code Online (Sandbox Code Playgroud) 我目前使用的是Visual Studio 2008 SP1,并且已将旧项目迁移到VS2008,但现有的SSIS和SSRS(2005)项目与VS2008不兼容.将这些BIDS项目作为单独的解决方案进行维护是一件痛苦的事.
我一直在考虑升级到SQL2008但是因为我们的开发,测试和生产平台都是SQL2005企业版,我不喜欢将我的本地环境偏离当前标准的想法.尽管想要VS2008的BIDS.
我刚刚安装了Sql Express 2008,其中包含所有的内容和一些东西...... Sql Express 2008是否只安装了我需要的所有BIDS位而无需升级本地版本的Sql Server?
这是为VS2008安装BIDS的可行方法还是我遗漏了什么?
UPDATE
我只是想一想......为什么我不能从完整的SQL Server 2008安装工具,因为我可以访问它.
还有一个问题是Express 2008和完整的Sql Server 2008之间的工具有什么不同.
我正在插入带有自动增量键字段的SQLServer表.(我相信这在SQLServer中称为IDENTITY列.)
在Oracle中,我可以使用RETURNING关键字为我的INSERT语句提供一个结果集,就像SELECT查询一样,它将返回生成的值:
INSERT INTO table
(foreign_key1, value)
VALUES
(9, 'text')
RETURNING key_field INTO :var;
Run Code Online (Sandbox Code Playgroud)
如何在SQLServer中完成此操作?
额外奖励:好的,到目前为止答案很好,但如果可能的话,如何将其写入单一陈述?:)
我们的数据库中有一个ORDER BY的视图.现在,我意识到观点通常不会排序,因为不同的人可能会将它用于不同的事情,并希望它有所不同.然而,该视图用于需要特定订单的非常特定的用例.(这是足球联赛的球队排名.)
该数据库是Windows Server 2003 R2上的Sql Server 2008 Express,v.10.0.1763.0.
视图定义如下:
CREATE VIEW season.CurrentStandingsOrdered
AS
SELECT TOP 100 PERCENT *, season.GetRanking(TEAMID) RANKING
FROM season.CurrentStandings
ORDER BY
GENDER, TEAMYEAR, CODE, POINTS DESC,
FORFEITS, GOALS_AGAINST, GOALS_FOR DESC,
DIFFERENTIAL, RANKING
Run Code Online (Sandbox Code Playgroud)
它返回:
GENDER, TEAMYEAR, CODE, TEAMID, CLUB, NAME,
WINS, LOSSES, TIES, GOALS_FOR, GOALS_AGAINST,
DIFFERENTIAL, POINTS, FORFEITS, RANKING
Run Code Online (Sandbox Code Playgroud)
现在,当我对视图运行SELECT时,它按GENDER,TEAMYEAR,CODE,TEAMID命令结果.请注意,它是按TEAMID而不是POINTS排序,因为order by子句指定.
但是,如果我复制SQL语句并完全按照新查询窗口中的方式运行它,它将按照ORDER BY子句的指定正确排序.
我最近遇到了linq-to-sql的一些问题.问题是,当我们有一个附加到事件的触发器时,它"认为"它在插入和更新时失败.一个示例可以是一行,其中附加了一个触发器,以便在更改行时将"LastUpdated"冒号设置为当前时间.这将导致linq-to-sql认为在更新或插入时失败,但这只是有时候,因为它有时会通过,我认为这是当sql服务器负载很重的时候因此不能在进行验证之前执行触发器,这只是猜测.因为我的脚本只是一个更大的脚本的一部分,所以禁用触发器不是一个选项,所以我需要找到一个解决方案,或重写我的程序.您是否遇到过这个问题并找到了解决方案,例如在插入后禁用验证?
触发.
USE [cnhha]
GO
/****** Object: Trigger [dbo].[LastUpdated] Script Date: 05/12/2011 16:26:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[LastUpdated] ON [dbo].[CN_User]
FOR INSERT, UPDATE
AS
update cn_user set lastupdated=getdate() where campusnetuserid in (select campusnetuserid from inserted)
Run Code Online (Sandbox Code Playgroud) @@ Rowcount用于通知最后一个select,insert,update或delete语句受影响的行数
Run Code Online (Sandbox Code Playgroud)declare @row int select 100 if @@rowcount>0 set @row=@@rowcount ...以上将返回0,因为一旦
if @@rowcount>0执行它将重置为0,因为它不返回任何行.所以总是先分配给变量
为什么语句if @@rowcount>0重置@@rowcount为0?是否 @@rowcount仅受select,insert,update和delete语句的影响?
谢谢
我的工作公司有一个MSSQL服务器2005.我有两个问题,关于找出当前的日志用户以及发送警告消息的任何方式:
第一个问题是,是否有任何T-SQL或SP可用于查找当前登录用户名和机器名.如果用户使用SQL Server sa名称远程访问SQL Server,有没有办法找出该用户的Windows名称(登录到Windows的名称)?
我的下一个问题是,如果我可以获取用户名或ID,是否有任何方法可以发出警告消息,例如"当前SQL服务器正在清理或备份,请不要在此时登录".我想这可能很难.我可能不得不向用户发送电子邮件.
SQL服务器只能在公司中访问.SQL服务器有一个用户列表作为登录用户:Windows用户,SQL用户和sa.
我有一个动态查询,我想连接uniqueidentifier,但+和&运算符不支持这个,有没有办法我可以将uniqueidentifier连接到动态字符串.在这方面的任何样本或任何帮助将被高度评价.
sql ×4
sql-server ×4
t-sql ×4
arrays ×1
bids ×1
c++ ×1
dynamic ×1
identity ×1
javascript ×1
linq-to-sql ×1
regex ×1
sql-order-by ×1
view ×1