我有PS模块,其中包含许多用于单个功能的脚本.还有一个"库"脚本,其中包含许多辅助函数,这些函数可由模块中使用的函数调用.
我们调用外部函数ReadWeb,它使用辅助函数ParseXML.
本周我遇到了一个问题,内部帮助ParseXML函数中有错误处理.该函数包含一个try/catch,并在catch中查询:
$Error[0].Exception.InnerException.Message
...为了将错误作为变量传递回外部作用域并确定是否ParseXML有效.
对于特定情况,我在调用时遇到索引错误ReadWeb.根本原因结果$Error是Catch块中的对象ParseXML回来了$Null.
我改变了错误处理来检查$Error -eq $Null,如果是,应使用$_在Catch确定该错误信息是什么.
我的问题是:什么原因$Error是$null里面的Catch?
我使用mysqldump工具制作我的数据库的副本.问题是,当我使用--routines参数输出我的存储过程以及我的数据时,生成的输出在我尝试导入时会导致错误.
它是这样的:
% mysqldump --routines MyDB | mysql MyDB2
Run Code Online (Sandbox Code Playgroud)
(MyDB2已经存在但是空的)
我得到的错误如下:
ERROR 1064 (42000) at line 307: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 23
Run Code Online (Sandbox Code Playgroud)
如果省略--routines,一切正常.
有人遇到过这种情况么?
尝试复制表中的某些行,但只需将ssreportid列从4 更改为6:
INSERT INTO ssreportparticipant (ssreportid, sssurveyparticipantid) VALUES SELECT 6, sssurveyparticipantid FROM ssreportparticipant WHERE ssreportid = 4
错误说"select 6,..."附近的#1064但是如果我只运行select子句,它会完美地选择记录,ssreportid列中的新id为6 .
该表有一个名为ssreportparticipantid的主键,并且在(ssreportid,sssurveyparticipantid)上有一个唯一键.请注意,select子句创建具有唯一键对的新记录,因此这不是问题.我试过在select子句周围放置括号,甚至为表使用两个别名,没有快乐.
使用服务器版本5.0.45.
请告诉我,程序员疲劳让我错过了逗号或其他东西.
谢谢,
-Josh
这看起来很简单,但看不到有关它的任何信息.我想要的只是查看对象资源管理器中sysobjects的表定义以及所有其他系统表.我知道我可以从sysobjects中选择*,但我想在对象资源管理器中看到所有其他系统表定义.当我在我的数据库下打开系统表时,我看到的只是dbo.sysdiagrams.救命?
SELECT app_contracts.*, app_customers.id as customer, app_boards.id as board
WHERE app_customers.id=app_contracts.customer_id
AND app_boards.id=app_contracts.board_id
ORDER BY app_contracts.id DESC
Run Code Online (Sandbox Code Playgroud)
错误:
错误号码:1064
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第2行的'WHERE app_customers.id = app_contracts.customer_id AND app_boards.id = app_contracts'附近使用正确的语法
如何将数据从一列传递到同一个表中的另一列?即:
create table tb_usuarios_voar
(
int_id_usu int identity(1,1),
int_re_usu int not null,
txt_colaborador varchar(200) null,
txt_cargo varchar(200) null,
txt_chefearea_usu varchar(150) null,
txt_estrutura varchar(200) null,
txt_marca varchar(200) null,
txt_unidade varchar(150) null
)
Run Code Online (Sandbox Code Playgroud)
那是原始表.然后我添加了一个新列:
alter table tb_usuarios_voar add txt_password varchar(140) null
Run Code Online (Sandbox Code Playgroud)
我想要的是将int_re_usu列中的所有记录复制到新列txt_password.
任何想法?
我在使用自定义CLR聚合函数的视图上创建索引时遇到问题.
我没有看到任何方法将聚合函数标记为确定性或使用模式绑定.
我正在创建我的函数:
CREATE ASSEMBLY StringUtil
AUTHORIZATION dbo
FROM 'C:\StringUtil.dll'
WITH PERMISSION_SET = UNSAFE
GO
CREATE AGGREGATE SUMSTRING (@input nvarchar(200))
RETURNS nvarchar(max) WITH SCHEMABINDING
EXTERNAL NAME StringUtil.Concatenate
Run Code Online (Sandbox Code Playgroud)
我的观点定义为:
CREATE VIEW RolledValues WITH SCHEMABINDING
AS
SELECT ID, SumString(ValueText) as Value FROM [dbo].[IDValue]
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)
当我尝试在该视图上创建索引时,会出现此问题:
CREATE UNIQUE CLUSTERED INDEX IDX_RollValues_ID_VALUE on RolledValues (ID)
Error: Cannot create index on view "dbo.RolledValues" because it uses aggregate
"dbo.SumString". Consider eliminating the aggregate, not indexing the view, or
using alternate aggregates.
Run Code Online (Sandbox Code Playgroud)
那么可以在索引视图中使用自定义聚合函数吗?我找不到任何关于此的文件......
功能
function findf {
Write-Host "Find files that match: $args"
gci -r | Where-Object { $_.name -match ".*$args.*" }
}
Run Code Online (Sandbox Code Playgroud)
似乎不起作用。例如,
findf .exe
Run Code Online (Sandbox Code Playgroud)
-- 打印一堆不限制输出到 EXE 文件的内容 --
任何想法我做错了什么?
如果我从 PowerShell 命令窗口运行相同的命令,该命令将起作用:
gci -r | Where-Object { $_.name -match ".*.exe.*" }
Run Code Online (Sandbox Code Playgroud)
这有效并正确地向我显示与 *.EXE 模式匹配的文件
有人可以帮我弄清楚我在SELECT语句中做错了什么吗?
SELECT *
FROM group
WHERE login = 'admin'
Run Code Online (Sandbox Code Playgroud)
我的错误是:
在第1行的'group WHERE login ='admin''附近使用正确的语法
它应该失败但是因为admin不在数据库中但是当我插入数据库中的数据时它仍然失败.
我试图在mssql2012中使用新的try_convert功能将日期/时间/偏移字符串转换为datetimeoffset.
字符串如下所示:2013-04-25T21:56:58.077-05:00
这是代码 - 我知道这个解析不起作用,所以我期望结果达到"IS NULL"并返回'Cast Failed'.这不是发生了什么 - 相反,我仍然得到Msg 241日期转换错误.有任何想法吗?
case
when try_convert(datetimeoffset, (cast(substring(lift.PlannedLiftDateTime,1,10) + ' ' + substring(lift.PlannedLiftDateTime,12,8) + ' ' + substring(lift.PlannedLiftDateTime,20,6) as datetimeoffset))) IS NULL
then 'Cast Failed'
when ltrim(rtrim(lift.PlannedLiftDateTime)) = ''
then NULL
else
'~' + lift.PlannedLiftDateTime + '~'
end as PlannedLiftDateTime,
Run Code Online (Sandbox Code Playgroud)