我想更改数据库中< code>Employees表的模式名。当前表中的< code>Employees数据库模式名为< code>dbo,我想将其更改为< code>exe。我该怎么做?
例子:
从
dbo.Employees
收件人
exe.Employees
我尝试了这个查询:
ALTER SCHEMA exe TRANSFER dbo.Employees
但是这给了我一个错误:
无法更改架构“exe”,因为它不存在或您没有权限。
我错过了什么?
试试下面
declare @sql varchar(8000), @table varchar(1000), @oldschema varchar(1000), @newschema varchar(1000)
set @oldschema = 'dbo'
set @newschema = 'exe'
while exists(select * from sys.tables where schema_name(schema_id) = @oldschema)
begin
select @table = name from sys.tables
where object_id in(select min(object_id) from sys.tables where schema_name(schema_id) = @oldschema)
set @sql = 'alter schema ' + @newschema + ' transfer ' + @oldschema + '.' + @table
exec(@sql)
end
ALTER SCHEMA NewSchema TRANSFER [OldSchema].[TableName]
当我在SQL中使用ALTER ScheMA
查询时,我总是必须使用括号,否则会收到错误消息。
创建架构 :
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'exe'))
BEGIN
EXEC ('CREATE SCHEMA [exe] AUTHORIZATION [dbo]')
END
更改架构:
ALTER SCHEMA exe
TRANSFER dbo.Employees
问题内容: 我们需要将某些列的数据类型从int更改为bigint。不幸的是,其中一些表很大,大约有7-10百万行(但不宽)。 Alter表alter列将永远保留在这些表上。有没有更快的方法来实现这一目标? 问题答案: 巧合的是,大约3个小时前,我不得不做一些非常相似的事情。该表是3500万行,它相当宽,并且花了很多时间才能做到这一点: 这就是我最终得到的结果: 这次,这些陈述几乎是即时的。(在速度
问题内容: 我有这样的查询结果: 列数未知,因为它是数据透视查询的结果。 我想将列的名称更改为如下所示: 颜色是我从另一个表中检索到的信息。 我怎样才能做到这一点? 谢谢 编辑:这是查询。 问题答案: 模式设置 : 查询 :
问题内容: 我有一个表,其数据对的建模如下: 然后总是更大。这些对表示要进行的替换。因此,将100替换为50,然后将50替换为40,然后将其替换为10。 因此结果将是这样的: 有没有一种我可以更改或加入此表来表示的简洁方法? 我知道我可以自己加入类似于以下内容的内容: 但是,这需要多次通过,因此,为什么我问是否有更好的方法来完成它? 问题答案: 结果:
我正在使用Android和ORMLite。我是新手,正在将数据库升级到版本2。我有“Auto”类,需要删除列别名。 我将类Auto更改为... 我需要知道在执行“onUpgradeMethod”时,ORMLite是否会自动删除列别名,或者我必须手动这样做。
我有数据库名称:PMKIT,前缀Table:PMKIT.TableName。我想重命名PMKIT。TableName到DBO.TableName。你能帮助我吗!
问题内容: 假设我有一个包含两列的表格(日期和价格)。如果我选择一个日期范围,那么是否有一种方法可以计算价格随时间变化的次数? 例如: 在这种情况下,我希望它返回4个价格变化的计数。 提前致谢。 问题答案: 您可以使用分析功能并访问结果集的上一行和下一行,然后使用该功能查看是否有更改。