有没有一种方法可以通过脚本更改/更新和删除/删除列说明?
我sp_addextendedproperty
用来添加描述,但不允许更新。当我尝试使用相同的sp来更新现有的描述值时,它说类似“
description属性已经存在”
对我来说,更改或删除/创建类似的解决方案都是可以的。
经过有用的回答和评论后,您可以在下面看到我的最终解决方案。可以帮助某人。
create procedure sp_set_column_description (
@schema varchar(256),
@table varchar(256),
@column varchar(256),
@description varchar(256))
as
begin
if exists (
select p.*
from
sys.extended_properties p,
sys.columns c,
sys.tables t,
sys.schemas s
where
t.schema_id = s.schema_id and
c.object_id = t.object_id and
p.major_id = t.object_id and
p.minor_id = c.column_id and
p.name = N'MS_Description' and
s.name = @schema and
t.name = @table and
c.name = @column
)
exec sys.sp_updateextendedproperty
@level0type=N'SCHEMA', @level0name=@schema,
@level1type=N'TABLE', @level1name=@table,
@level2type=N'COLUMN', @level2name=@column,
@name=N'MS_Description', @value=@description
else
exec sys.sp_addextendedproperty
@level0type=N'SCHEMA', @level0name=@schema,
@level1type=N'TABLE', @level1name=@table,
@level2type=N'COLUMN', @level2name=@column,
@name=N'MS_Description', @value=@description
end
go
create procedure sp_drop_column_description (
@schema varchar(256),
@table varchar(256),
@column varchar(256))
as
begin
if exists (
select p.*
from
sys.extended_properties p,
sys.columns c,
sys.tables t,
sys.schemas s
where
t.schema_id = s.schema_id and
c.object_id = t.object_id and
p.major_id = t.object_id and
p.minor_id = c.column_id and
p.name = N'MS_Description' and
s.name = @schema and
t.name = @table and
c.name = @column
)
exec sys.sp_dropextendedproperty
@level0type=N'SCHEMA', @level0name=@schema,
@level1type=N'TABLE', @level1name=@table,
@level2type=N'COLUMN', @level2name=@column,
@name=N'MS_Description'
end
结合Steph Locke的建议,您可以使用以下方法检查扩展proc的存在:
if exists(
SELECT *
FROM sys.extended_properties p
join sys.columns c on p.major_id = c.object_id and p.minor_id = c.column_id
where p.major_id = OBJECT_ID('yourtablename','table')
and p.name = 'Description'
)
我有这样的设置: 所有.飞镖只是导入脚本1.飞镖和脚本2.dart并调用它们的主要。目标是在细节下有一堆可以单独运行的脚本。此外,我想要一个单独的 all.dart 脚本,可以一次运行所有脚本。这将使调试单个脚本更简单,但仍允许所有脚本运行。 all.dart 脚本1.飞镖 脚本2.dart 所以,这是工作,我看到运行时预期的打印语句all.dart但我有两个问题。 首先,我必须在详细信息下软链接
我对环境并不陌生。我有一个以下脚本,用于创建包含少量列的表。 我想要的是使主键列成为一个自动递增的列,这可以通过上面的sql脚本实现吗? 就像在中一样,您可以指定来使列自动递增。oracle有这样的选项吗?
问题内容: 我的公司刚刚完成了年度审核流程,我终于说服了他们,该是时候找到一个更好的解决方案来管理我们的SQL模式/脚本。目前,我们只有几个脚本可以手动更新。 我曾在另一家公司使用过VS2008 Database Edition,这是一个了不起的产品。我的老板要我看一下Redgate的SQL Compare,并寻找其他可能更好的产品。SQL Compare似乎也是一个很好的产品。但是,看起来他们没
理解自动内存管理 当创建一个对象、字符串或数组时,会从名为 堆 的中央池中分配一块内存,用来所存储创建的值。当这些值不再被使用时,被占用的内存可以被回收,并用于存储其他的值。在过去,是由程序员显示地调用相应的函数分配和释放堆内存。如今,像 Unity Mono 引擎这样的运行时系统,可以自动地管理内容。相比显示地分配和释放内存,自动内存管理需要的编码工作更少,并且大大降低了发生内存泄露的可能性(例
问题内容: 是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如: 是的,我知道这行不通,但是有办法实现吗? 问题答案: 您可以使用该命令通过来使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。 要在远程主机上使用该功能: 更好的是,为什么还要麻烦管道: 或者,您可以使用HEREDOC: 如果要发送脚本中定义的所有函数,而不仅仅是发送,请像这样使用: 说明
问题内容: 我正在尝试使用Linux crontab执行python脚本。我想每10分钟运行一次此脚本。 我找到了很多解决方案,但都无济于事。例如:在/etc/cron.d中编辑anacron或使用。我将此行放在文件的末尾,但它没有任何改变。我需要重启任何服务吗? 我必须编辑哪个文件来配置它? 提前致谢 这是脚本。 问题答案: 只需使用并按照此处的教程操作即可。 请参阅第3点,以获取有关如何指定频