'^m'字符在线上

当我在UNIX环境中运行特定的SQL脚本时,我会在SQL脚本的每一行末尾看到一个’^m’字符,因为它与命令行相呼应。我不知道最初创建了哪个SQL脚本的OS。 是什么原因导致了这一点,我该如何解决? 答案 它是由DOS/Windows线路结束字符引起的。就像安迪·惠特菲尔德(Andy Whitfield)所说的那样,Unix命令DOS2Unix将有助于解决问题。如果您需要更多信息,则可以阅读该命令的人页面。 来自: stackoverflow.com

'喜欢('%this%'或'%that%')和某物=其他'不起作用

我有一个选择的查询,我想在其中搜索字符串以获取多种模式 LIKE ('%this%' or '%that%' ) and something=else 返回零结果 然而 LIKE '%this%' and something=else 返回结果 LIKE '%that%' and something=else 返回结果 是否有可能将我的所有结果纳入一个查询?如果一个弦匹配,它将如何处理? 答案 如果可以的话,那会很好,但是您不能在SQL中使用该语法。 尝试这个: (column1 LIKE '%this%' OR column1 LIKE '%that%') AND something = else 注意托架的使用!您需要它们周围OR表达。 没有括号,它将被解析为A OR (B AND C),这不会给您期望的结果。 来自: stackoverflow.com

“ dateadded'的无效默认值”

我对SQL遇到了一个愚蠢的问题,我无法解决。 ALTER TABLE `news` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT , ADD PRIMARY KEY ( `dateAdded` ) 错误: (#1067)Invalid default value for 'dateAdded' 有人可以帮我吗? 答案 CURRENT_TIMESTAMP仅可接受TIMESTAMP字段。DATETIME必须将字段留为默认值,或者根本没有默认值 - 默认值必须是恒定值,而不是表达式的结果。 相关文档:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html 您可以通过在表上设置插入后触发器来填写任何新记录的"现在"价值来解决此问题。 来自: stackoverflow.com

“ Identity_insert设置为关闭时,无法在表中插入标识列的显式值”使用复合键

我们最近在数据库中添加了一个新的"级别" - 在整个数据库中表中的现有ID身份字段之前,添加了一个密钥" Company_ID"。 例如,如果表格具有ID,则现在具有Company_ID,然后是ID,然后是字段。这个想法是,这允许ID自动向功能提供的每个不同的Company_ID值(Company_ID 1可以具有ID 1、2、3等; Company_ID 2可以具有ID 1、2、3等)。 自动插入字段仍然是ID。一个示例表是: [dbo].[Project]( [Company_ID] [int] NOT NULL, [ID] [int] IDENTITY(1,1) NOT NULL, [DescShort] [varchar](100) NULL, [TypeLookUp_ID] [int] NULL, [StatusLookUp_ID] [int] NULL, [IsActive] [bit] NOT NULL, CONSTRAINT [PK_Project] PRIMARY KEY CLUSTERED ( [Company_ID] ASC, [ID] ASC ) 在引入Company_ID之前,要执行创建,我们只是简单地填充了descshort,typelookup_id,statuslookup_id和ISActive字段,然后默认情况下ID是任何情况,可能是0。 该记录得以成功保存,并且ID被数据库自动填充,然后用来通过视图进行表演,依此类推。 但是,现在,我们希望将Company_ID设置为指定的值,离开ID并像以前一样填充字段。 _db.Project.Add(newProject); _db.SaveChanges(); 是的,我们要指定Company_ID值。我们希望按照以前的方式自动填充ID。我们收到错误消息: 当Identity_insert设置为关闭时 这是由指定Company_ID或ID字段引起的吗?您知道我们如何纠正这个问题吗? 答案 睡觉后,我找到了这一点,用于Visual Studio C#代码:[DatabaseGenerated(DatabaseGeneratedOption.Identity)]。这个(用我的话)为我的每个ID字段,告诉Visual Studio,该字段是一个身份,并且在将值发送到数据库时"单独"。什么时候Company_ID首先发生,并具有一个价值,告诉Visual Studio,在其他地方有一个身份字段允许_db.Project.Add(newProject);进而_db.SaveChanges();根据需要运行。答案的这一部分是针对视觉工作室方面的。我了解SQL要求IDENTIY_INSERT因此,感谢 @Matt-Thrower, @Steve-Pettifer和其他贡献的人。 来自: stackoverflow.com

“ In”操作员可以在Oracle中使用像WildCard(%)吗?

我已经搜索了这个问题,并在MySQL中找到了答案,但这是该声明未能跨入Oracle的事件之一。 我可以在"IN"MySQL 语句中使用通配符吗? 几乎总结了我的问题和我想做的事情,但是在 Oracle 中 我想找到相当于法律的 Select * from myTable m where m.status not in ('Done%', 'Finished except%', 'In Progress%') 谢谢你的帮助 答案 Select * from myTable m where m.status not like 'Done%' and m.status not like 'Finished except%' and m.status not like 'In Progress%' 来自: stackoverflow.com

“ mod”不是公认的内置功能名称

我想用MOD功能中的功能SQL Server 2008R2然后遵循关联但仍然收到消息: " mod"不是公认的内置功能名称。 DECLARE @m INT SET @m = MOD(321,11) SELECT @m 错误: 味精195,第15级,州10,第2行 " mod"不是公认的内置功能名称。 为什么我无法从上面的链接中使用此功能? 答案 这MOD关键字仅存在于DAX语言(表格尺寸查询),而不是TSQL 使用%反而。 参考:Modulo 来自: stackoverflow.com

“ ORA-01438:插入3

当试图将任何数字插入具有格式号码(2,2)的字段中以外的任何数字以外的任何数字外,我遇到了该错误。 UPDATE PROG_OWN.PROG_TPORCENTAJE_MERMA SET PCT_MERMA = 3 WHERE IDN_PORCENTAJE_MERMA = 1 [错误代码:1438,SQL状态:22003] ORA-01438:值大于本列允许的指定精度 COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS PCT_MERMA 3 NUMBER 2 0 2 如果我尝试使用十进制数字,也会发生这种情况。 知道为什么吗? 答案 您无法使用数据类型大于1的数字进行更新number(2,2)是因为,第一个参数是数字中的数字总数,第二个参数(在这里。我想您可以插入或更新数据< 1。即0.12,0.95等 请在数字数据类型。 来自: stackoverflow.com

“'字段列表中的未知列'”,但确实存在列

DROP TABLE IF EXISTS `transactions`; CREATE TABLE `transactions` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `purchase_date` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `transactions` (`purchase_date`) VALUES (NULL) 我已经在此代码中隔离了我的问题。当我运行它时,我会发现错误: [查询3中的错误]未知列’publy_date’in’field列表' 有人一个主意吗? 答案 有一个不可打印的字符30(记录分隔符)purchase_date和'在里面INSERT陈述。只需删除文字('purchase_date')并用手重写应该没问题。 来自: stackoverflow.com

“”符号在SQL中有什么作用?

我正在浏览这些问题,并注意到了这一点: SELECT prodid, issue FROM Sales WHERE custid = @custid AND datesold = SELECT MAX(datesold) FROM Sales s WHERE s.prodid = Sales.prodid AND s.issue = Sales.issue AND s.custid = @custid 我想知道"@“在Custid面前做什么?这只是从选定表中参考CUSTID的一种方式吗? 答案 @custid表示这是一个参数,您将为以后的代码提供值。这是防止SQL注入的最佳方法。使用参数创建查询,而不是串联字符串和变量。数据库引擎将参数值放入占位符所在的位置,而SQL注入的机会为零。 来自: stackoverflow.com

“<>”的 SQL 运算符名称是什么?

我一头雾水,谷歌没找到。Sql <>运营商名称? 答案 <>不等于,它等于!= 来自: stackoverflow.com

“1”附近的语法不正确。

我有一个包含大学统计数据的表格,如下所示: StatID | UniversityID | StatValue 1 | 1 | 100 2 | 1 | 90 3 | 1 | 80 1 | 2 | 50 2 | 2 | 55 我想要一个查询返回这样的内容: (Rows are StatIDs, Columns are UniversityIDs) StatID | 1 | 2 | 3 1 | 100 | 50 | NULL 2 | 90 | 55 | NULL 3 | 80 | NULL | NULL 这是我的查询: SELECT StatID, 1, 2, 3 FROM (SELECT StatID, UniversityID, StatValue FROM @table) up PIVOT (MAX(StatValue) FOR UniversityID IN (1, 2, 3)) AS pvt ORDER BY StatisticID; 我收到错误FOR UniversityID IN (1,说:...

“CREATE VIEW”必须是查询批中的第一个语句

基本上就是标题所说的。 USE Assignment2; GO /* Player View (2 marks) Create a view which shows the following details of all players: • The ID number of the player • The first name and surname of the player concatenated and given an alias of "full_name" • The team ID number of the player (if applicable) • The team name of the player (if applicable) • The coach ID number of the player (if applicable) • The name of the player's coach (if applicable) Creating this view requires a select statement using multiple joins and concatenation of names....

“TRIM”不是可识别的内置函数名称

我创建了简单的函数 create function TRIM(@data varchar(20)) returns varchar(100) as begin declare @str varchar(20) set @str = rtrim(ltrim(@data)) return @str end 我正在按以下方式执行。 declare @s varchar(25) set @s = ' Amru ' select TRIM(@s) 我收到以下错误。 Msg 195, Level 15, State 10, Line 3 'TRIM' is not a recognized built-in function name. 任何人都可以帮我找到这个问题吗? 答案 调用用户定义函数时需要使用 Schema 前缀。 将您的选择语句更改为: declare @s varchar(25) set @s = ' Amru ' select dbo.TRIM(@s) 来自: stackoverflow.com

“必须在存储过程中声明表变量“name””

我有一个返回错误的过程: 必须声明表变量"@PropIDs"。 但随后出现以下消息: (受影响的 123 行) 当我执行它时出现错误 EXEC [dbo].[GetNeededProperties] '1,3,5,7,2,12', '06/28/2013', 'TT' 但工作正常时 EXEC [dbo].[GetNeededProperties] NULL, '06/28/2013', 'TT' 有人可以帮我吗? CREATE PROCEDURE [dbo].[GetNeededProperties] @NotNeededWPRNs nvarchar(max), --string like '1,2,3,4,5' @LastSynch datetime, @TechCode varchar(5) AS BEGIN DECLARE @PropIDs TABLE (ID bigint) Declare @ProductsSQL nvarchar(max); SET @ProductsSQL = 'Insert into @PropIDs (ID) SELECT [WPRN] FROM [dbo].[Properties] WHERE(WPRN in (' + @NotNeededWPRNs + '))' exec sp_executesql @ProductsSQL SELECT p.WPRN AS ID, p.Address AS Address, p.Address AS Street FROM [dbo]....

“此SQLTransaction已完成;它不再可用。” ...配置错误?

我已经在工作了大约一天半,搜索了数字博客并在网上帮助文章。我发现了几个与此错误有关的问题,但是我认为它们没有完全适用于我的情况(或者在某些情况下,不幸的是,我无法很好地理解它们无法实施:P)。我不确定我能够很好地描述这一点以提供帮助…但是这里是: 我们有一个.NET应用程序来跟踪我们的资源。有一个导出功能将资源复制到时间跟踪系统和计费系统;这将访问一个链接到时间和计费数据库的存储过程。 我最近将计费系统数据库移至新服务器(原始服务器:Server 2003 SP2,SQL 2005; New Server:New Server:Server 2008 R2,SQL 2008 R2)。我设置了一个链接服务器,该服务器指向2008数据库。我更新了存储过程以指向2008服务器,然后我遇到了有关MSDTC和RPC(http://www.safnet.com/writing/writing/tech/archives/2007/06/server_myserver.html)的错误。我在链接服务器上启用了" RPC/RPC OUT",并设置MSDTC允许网络访问(类似的是:http://www.sqlwebpedia.com/content/msdtc-troubleshooting)。 现在,当我尝试运行导出函数时,我得到了上述内容:“此SQLtransaction已完成;它不再可用。“对我来说似乎很奇怪的是,当我刚运行存储过程(来自SSM)时,它说它成功完成。 有没有人vue这个?我错过了配置中的东西吗?我不断浏览相同的页面,唯一发现的是,我没有在更改MSDTC后重新启动(此处提到:http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/7172223f-acbe-4472-8cdf-feec80fd2e64/)。 如果可以帮助我,我可以发布部分或所有存储过程…请告诉我。 答案 我相信此错误消息是由于"僵尸交易”。 查找事务被提交两次(或回滚两次,或回滚并提交等)的可能区域。 可能从未在旧服务器上击中错误条件,因此从未达到故障的"双重回滚"代码。也许现在您有一个情况是新服务器上的某些配置错误,现在有故障的代码正在通过异常处理命中。 您可以调试错误代码吗?您有堆栈跟踪吗? 来自: stackoverflow.com