在T-SQL中,我可以说:
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = 'tableName')
DROP TABLE [dbo].[tableName]
go
Run Code Online (Sandbox Code Playgroud)
以下SQL命令的等效批处理终结符(即"go")是什么?
DROP TABLE IF EXISTS tableName
Run Code Online (Sandbox Code Playgroud) 我有一些遗留软件,我需要在Control-M下自动化.这些工作属于Windows 2008R2.
如果它们运行正常,这些作业的退出代码为0,但如果它们可以管理某些错误,则它们也会有.当特定字符串在日志中时,我需要发出警报.
该字符串不在可执行文件的输出中.
我为此实施了另一项工作.它会搜索文件中的字符串,并在"On Do Actions"中搜索该语句.
要在输出中使用语句,我认为使用像grep这样的东西.我用了:
findstr
findstr "myerrorcode" D:\Log\greptest_%%$ODATE..log
Run Code Online (Sandbox Code Playgroud)grep在cygwin下
在这两种情况下,我都有相同的情况:
但问题是:当在文件中找不到字符串时,grep和findstr都有一个返回码= 1.
如果文件无法打开以及一切运行正常但是找不到日志中的sring,我如何区分这些情况?
我试图通过DB LINK从SQL Server 2008 R8执行oracle存储过程,存储过程的标题如下所示:
程序测试(X OUT NOCOPY VARCHAR2,Y OUT NOCOPY NUMBER,Z IN NUMBER)
此过程将更新表"MYTABLE"并返回结果
我的T-SQL是:
DECLARE @X nvarchar(255)
DECLARE @Y INTEGER
DECLARE @Z INTEGER
SET @X= ''
SET @Y = 0
SET @Z = 2
EXEC('begin USER.PKG.TEST(?,?,?); end;',@X OUTPUT, @Y OUTPUT,@Z ) AT DB_ORACLE;
Run Code Online (Sandbox Code Playgroud)
执行存储过程是因为我可以看到表"MYTABLE"已更新,但问题是我得到一个错误:
Msg 7215, Niveau 17, État 1, Ligne 10
Impossible d'exécuter l'instruction sur le serveur distant 'DB_ORACLE'.
Run Code Online (Sandbox Code Playgroud)
转化为
Cannot execute the instruction at the distant server 'DB_ORACLE'
Run Code Online (Sandbox Code Playgroud)
注意:启用Rpc,Rpc Out和Use Remote Collation的参数
感谢帮助
我从开发人员那里找到了这个查询:
DELETE FROM [MYDB].[dbo].[MYSIGN] where USERID in
(select USERID from [MYDB].[dbo].[MYUSER] where Surname = 'Rossi');
Run Code Online (Sandbox Code Playgroud)
此查询将删除表MYSIGN中的每条记录.
表MYUSER中不存在 USERID字段.如果我只运行子查询:
select USERID from [MYDB].[dbo].[MYUSER] where Surname = 'Rossi'
Run Code Online (Sandbox Code Playgroud)
它会抛出正确的错误,因为缺少列.
我们使用右列更正了查询,但我们没有弄明白:
规范:数据库位于SQL SERVER 2016 SP1,CU3上.
由于我的第二个查询错误,我在将评论插入我的评论表时遇到了麻烦.我继续把我的消息框(调试)读取为(se7en,57547,4)甚至0如果我使用查询而不是(24,57547,4),因为当我输入电影时,它将被转换为电影ID号,以便用作不同表的int.我的目标是阅读为(24,57547,4),以便插入我的桌子.
private void InsertReview_Click(object sender, EventArgs e)
{
string filename, connectionInfo;
SqlConnection db;
this.listBox1.Items.Clear();
filename = "netflix.mdf";
connectionInfo = String.Format(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\{0};Integrated Security=True;", filename);
db = new SqlConnection(connectionInfo);
db.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = db;
string moviename = this.textBox1.Text;
moviename = moviename.Replace("'", "''");
cmd.CommandText = string.Format(
@"SELECT MovieID FROM Movies
where MovieName = '{0}';", moviename);
object result = cmd.ExecuteScalar();
int id = System.Convert.ToInt32(result);
this.listBox1.Items.Add(id); //debugging to make sure it converted right
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = db; …Run Code Online (Sandbox Code Playgroud) sql-server ×3
t-sql ×2
c# ×1
command-line ×1
control-m ×1
grep ×1
oracle ×1
postgresql ×1
shell ×1
sql ×1