我正在开发可以处理多个数据库服务器的应用程序,如"MySQL"和"MS SQL Server".
我想使用适用于所有数据库类型的通用查询来获取特定数据库的表名.我试过以下:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Run Code Online (Sandbox Code Playgroud)
但它给出了特定服务器的所有数据库的表名,但我想获取所选数据库的表名.如何限制此查询以获取特定数据库的表?
有没有什么方法可以通过删除所有表并删除一个SQL语句中的存储过程,触发器,约束和所有依赖项来清理SQl Server 2005中的数据库?
请求的理由:
我希望有一个数据库脚本来清理未使用的现有数据库,而不是创建新数据库,特别是当您必须向数据库管理员发出请求并等待一段时间才能完成时!
什么是存储过程?他们是如何工作的?什么是存储过程的组成(每个必须是存储过程的东西)?
我有一个带有日期时间字段的SQL表.有问题的字段可以为null.我有一个查询,我希望结果按日期时间字段按升序排序,但是我想要在列表末尾的日期时间字段为空的行,而不是在开头.
有没有一种简单的方法来实现这一目标?
我有一个在MySQL中工作正常的查询,但是当我在Oracle上运行时,我收到以下错误:
SQL错误:ORA-00933:SQL命令未正确结束
00933. 00000 - "SQL命令未正确结束"
查询是:
UPDATE table1
INNER JOIN table2 ON table1.value = table2.DESC
SET table1.value = table2.CODE
WHERE table1.UPDATETYPE='blah';
Run Code Online (Sandbox Code Playgroud) 如何从QuerySet对象获取Django将在数据库中使用的SQL?我正在尝试调试一些奇怪的行为,但我不确定哪些查询会进入数据库.谢谢你的帮助.
我试图在INSERT声明后得到一个键值.示例:我有一个包含属性name和id的表.id是生成的值.
INSERT INTO table (name) VALUES('bob');
Run Code Online (Sandbox Code Playgroud)
现在我想在同一步骤中恢复身份.这是怎么做到的?
我们正在使用Microsoft SQL Server 2008.
我想知道如何编写此查询.
我知道这个实际的语法是假的,但它会帮助你理解我想要的东西.我需要这种格式,因为它是一个更大的查询的一部分.
SELECT distributor_id,
COUNT(*) AS TOTAL,
COUNT(*) WHERE level = 'exec',
COUNT(*) WHERE level = 'personal'
Run Code Online (Sandbox Code Playgroud)
我需要在一个查询中返回所有内容.
此外,它需要在一行,所以以下将不起作用:
'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'
Run Code Online (Sandbox Code Playgroud) UPSERT操作更新或在表中插入一行,具体取决于表是否已有一行与数据匹配:
if table t has a row exists that has key X:
update t set mystuff... where mykey=X
else
insert into t mystuff...
Run Code Online (Sandbox Code Playgroud)
由于Oracle没有特定的UPSERT语句,最好的方法是什么?
这不应该是一个非常简单的操作吗?但是,我看到既没有size()也没有length()方法.
sql ×10
sql-server ×4
oracle ×2
t-sql ×2
count ×1
django ×1
group-by ×1
inner-join ×1
java ×1
jdbc ×1
join ×1
merge ×1
mysql ×1
ora-00933 ×1
python ×1
record-count ×1
resultset ×1
sorting ×1
sql-order-by ×1
upsert ×1