我有一个SQL Server 2019数据库(一个大数据库)。这个数据库有大约3000列和大约200个表,对于每个表,我们至少有3个存储过程。
无论如何,我们在这个数据库中有一些以小写字母开头的列,比如userID。它们应该是UserID。我的老板说我们应该重新命名所有这些列。我使用了一条Select语句来查找这些列。
代码如下:
select * from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
因此,我有列名
SQL标准及其主流DB实现( Server、Oracle、DB2、PostgreSQL、Firebird、MySQL等)是什么?关于以下一般情况下的最终订单:
SELECT * FROM (SELECT * FROM Table t ORDER BY t.Field)
我是否可以相信外部投影也尊重内部秩序,或者我是否需要明确地在外部语句中声明ORDER BY?
我理解“明确列出”的建议。然而,在某些情况下,显式上市可能会造成问题。例如,PostgreSQL要求ORDER BY中列出的所有字段也在SELECT DISTINCT中列出。在某些情况下,这是没有好处的,因为它改变了预期的结果集,根据我
它应该很简单,但却不起作用。
SELECT * FROM profile WHERE name LIKE = 'H%';
ERROR 1064 (42000): 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 '= 'H%'' at line 1
表中的列
SHOW COLUMNS FROM profile;
+-------+
我想列出特定数据库上的所有用户。
当我使用sys.server_principals或sys.sysmembers系统视图时,它不会列出出现在SQL Server Management Studio中对象浏览器的“安全->用户”列表下的所有用户。
这是我尝试过的:
USE [Database_Name];
SELECT user_name([memberuid]) as [Username]
FROM [sys].[sysmembers];
USE [Database_Name];
SELECT [name]
FROM [sys].[server_principals];
谢谢!
我在SQL server中有一个表进行了列测试,
test
-------
This Is Another Test
This is another Test
我想查询应该返回给我输出的表:
预期输出:
test
-------
This Is Another Test
我编写的查询没有给出预期的大小写检查输出:
select * from proptest where test like '[A-Z][a-z]{2}(?: [A-Z][a-z]*)*$';
如何检查一个值是否大小写正确?
在python上的一个程序中,我通过sqlalchemy向SQL Server 2005发出查询:
SELECT * FROM table
WHERE (cipher=:value? OR CHARINDEX(cipher_mask,:value?)!=0)
and NOT exists( SELECT * FROM table WHERE CHARINDEX(not_cipher_mask,:value?)!=0 AND code=:code?)
and code=:code?
这可以很好地工作。
我正在尝试为SQLite创建类似的查询(它不使用函数CHARINDEX)
SELECT *
我正在搜索一个要通过PhpMyAdmin运行的SQL查询,以便在数据库的所有表中查找包含给定字符串的所有记录。到目前为止,我找到的只是一个查询:
SELECT * FROM information_schema.`COLUMNS` C WHERE TABLE_SCHEMA = 'final_year_project_demo'
这将返回模式中的所有表,但我在SQL中的效率不高,因此不能再往下移动。
所有我需要的是一个查询,将列出所有记录(在任何列中包含一个特定的字符串),从所有的表是通过上述代码列出的。所有表中的列都相同。
我们的考勤数据库是一个普适/Actian数据库。我想要做的是创建一个查询,它只列出了接下来的14天。然后,我将将此日期列表与员工记录交叉应用,以便有效地列出今后14天的人员/日期列表。
我很容易在SQL服务器上使用递归的CTE来完成这个任务。我也可以在Server中使用一个循环来完成这个任务,但是我无法用普适SQL解决这个问题。循环只能存在于存储过程和触发器中。
环顾四周,我认为我找到并修改的这段代码可能会起作用,但它不起作用(而且进一步的研究表明,在普适的环境中根本没有递归选项。
WITH RECURSIVE cte_numbers(n, xDate)
AS (
SELECT
使用VB 2010和SQL Server 2008:
我能够在datatable中插入新行、删除行和更新数据,还可以使用数据适配器更新数据库,而不会出现任何问题。当我尝试添加新列时,该列出现在数据表中,但它不会更新到数据库中。我目前使用的是DataAdapter.Update(DataTable)方法。
我的代码如下:
Dim dcNewColumn As New DataColumn
dcNewColumn.ColumnName = strClassColumnName
m_DataTable.Columns.Add(dcNewColumn)
m_DataTable.Row(intCurre
我想使用select语句找出表中的哪些列共享相似的信息。
示例:包含ClassID, ClassName, ClassCode, ClassDescription列的Classes表。
这是我已经上交的SQL课程的一部分。问题是“哪些课程属于英语系?”
我使用了以下Select语句:
SELECT *
FROM Classes
WHERE ClassName LIKE "English%" OR ClassCode LIKE "ENG%"
假设我们只在这个数据库中输入了一门实际的英语课程,最终的结果是它执行得很好,并且只显示了英语课程的所有内容。我认为这是成功
我知道我可以访问每个数据库并运行:
SELECT name AS username FROM sys.sysusers
这给我提供了Azure SQL数据库的用户列表。
在Azure SQL Server上的主数据库中,我可以运行:
SELECT name AS databasename FROM dbo.sysdatabases
但是,对于Azure,我想不出的是如何循环遍历所有数据库,并为每个数据库列出其用户。
显然,我不能创建一个循环以供使用@databasename,因为USE不适用于Azure SQL数据库。
我所能做的就是编写代码来创建代码。我遍历数据库并打印出一个字符串来运行每个
我在他们自己的服务器上有两个数据库。我希望比较位于每个数据库的表中的、FIRSTNAME、和LASTNAME列。
如果第一个数据库具有一个与第二个数据库中的名字和姓氏列相匹配的名字和姓氏组合,我想要显示这个名称。
我只想知道在两个数据库服务器中列出了哪个名称。
我尝试了下面的内容,但仍然有一个错误:
Could not find server 'sql01' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure s
SELECT d.NAME
,ROUND(SUM(mf.size) * 8 / 1024, 0) Size_MBs
,(SUM(mf.size) * 8 / 1024) / 1024 AS Size_GBs
FROM sys.master_files mf
INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4
GROUP BY d.NAME
ORDER BY d.NAME
我有上面的T-SQL脚本,它列出了SQL Server实例上的所有数据库以及它们相应的大小(MB和GB
我试图使用下拉列表从我上传的数据库中提取“口袋妖怪”的信息,并不断收到以下错误:
没有requestedDatabase访问失败:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得在第1行pokemon_name = SELECT * FROM附近使用的正确语法
我现在有一个数据库,其中的标题是:
id = pokemon_name >高度>重= gif
我真的搞不懂为什么..。我的处理代码如下;
// CODE TO QUERY DATABASE TO GO HERE
// Capture form data, if anything was submi
我有一个用来列出数据库的查询:
SELECT * FROM sys.databases
但此查询在SQL Server 2000中不起作用。
以下查询适用于SQL Server 2000及更高版本:
SELECT NAME FROM sysdatabases;
我找到了,它有一些关于sys.database的注释(还指定出于兼容性的原因而保留了sysdatabase)。
我想知道的是,是否有任何理由不应该使用sysdatabases来获取数据库名称列表?除了使用sys.databases是更新的风格之外,我没有在其他地方看到任何东西。
我使用一组类似SQL的条件来遍历字母表并列出以适当字母开头的所有项目,例如,获取标题以字母“A”开头的所有图书:
SELECT * FROM books WHERE title ILIKE "A%"
这对于字母来说很好,但是我如何列出所有以任意数字开头的项目?无论如何,这是在Postgres DB上实现的。
如果我使用Access链接到SQL Server数据库,速度是否相同?
例如,我在SQL Server数据库中有一个表[TEST],在列[ID]上有一个索引。如果我在SQL Server环境中编写SQL查询:
SELECT ....
FROM TEST
WHERE ID = ...;
索引正在起作用(或有帮助)。如果我使用Access链接到此[TEST],并在Access中编写查询:
SELECT ....
FROM TEST
WHERE ID = ...;
速度是否与在SQL Server环境中查询数据的速度相同?是否有某种方法可以测试它,例如SQL Server中的执行计划或SQL
我正在尝试获取SQL Server2008中两个日期之间修改的数据库列表。
我尝试了这个查询,
select *
from sys.objects
where modify_date between '2015-12-01' and GETDATE()
但是该查询中的modify_date列只有在表的设计改变时才会改变。如果数据被插入到表中,它将不会被覆盖。
我已经检查了SQL Server中的Default trace选项,对于数据库,它是打开的(设置为1)。
有没有办法列出在两个指定日期之间修改过的数据库?
提前谢谢你。
我可以使用select语句来标识我想要的数据:
SELECT InventoryUnitMeasure.ItemCode,
InventoryUnitMeasure.UPCCode,
InventoryItem.ItemName
FROM InventoryUnitMeasure
INNER JOIN InventoryItem
ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode
where ItemName like 'SNT%'
然后,我尝试这
我对SQL知之甚少,但我找到了一个命令,用于SQL Server在数据库中添加列(如果该列不存在)。遗憾的是,当对我的MySQL数据库执行时,它不起作用,返回一个语法错误。
$query = $dbh->prepare("if not exists (select * from syscolumns where id=object_id(':table_name') and name='where') alter table :table_name add where int(2)");
if($query->execute(arr
与以下CTE:
WITH cteRoute AS (
SELECT *
FROM CRROUTE cr
JOIN crewleg cl on (cr.CDATE = cl.CDATE AND cr.CROUTE = cl.croute)
left JOIN legmain lm on (lm.DAY = cl.DAY AND lm.DEP = cl.DEP and lm.CARRIER = cl.CARRIER and lm.FLT = cl.FLT and lm.LEGCD = cl.LEGCD )
left JOIN legtime