相关疑难解决方法(0)

如何生成分区函数和分区模式的创建脚本?

我有一个脚本来生成创建表脚本。你可以在我对这个问题的回答中看到它

但是,现在我需要编写我的分区函数分区方案

关于这个问题here,看到答案有关于如何向表添加分区以及如何从表中删除分区的示例,我想看看任何阶段的脚本。

我找到了这个链接:如何找到应用于表的分区函数文本

如何生成用于创建分区函数和分区模式的脚本?

我正在编写一个脚本来生成create partition function 如下所示的 ,但它仅适用于我自己的PF_year分区函数,因为was很难克服sys.partition_range_values具有sql_variant数据类型作为值的事实。

当我使用案例时,出现以下错误:

消息 206,级别 16,状态 2,第 35 行

操作数类型冲突:int 与日期不兼容

然后在他的精彩回答Dan Guzman 中,向我们展示了SQL_VARIANT_PROPERTY一些我不知道的奇妙事物,现在我是一名新的 DBA 和新人。

   SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SELECT
    RADHE = 'CREATE PARTITION FUNCTION' + space(1) + quotename(spf.name) + 
'(' +  
    COALESCE(baset.name,'data type not found') +   ')' + CHAR(13) + 
    'AS RANGE ' + CASE WHEN CAST(spf.boundary_value_on_right AS …
Run Code Online (Sandbox Code Playgroud)

database-design sql-server optimization partitioning sql-server-2014

6
推荐指数
2
解决办法
9949
查看次数

如何在不同的数据库中创建触发器?

是否可以创建一个存储过程,在与存储过程本身所在的数据库不同的数据库中创建表触发器 (DDL) 。数据库位于同一服务器实例上。如果是,那么如何?

例如,这不起作用:

create PROCEDURE [dbo].[CreateTriggrer]
  @db varchar(60)
AS
BEGIN
  SET NOCOUNT ON;   
  declare @statement nvarchar(max) = N'CREATE TRIGGER [dbo].[TestTrigger]
   ON  [$database$].[dbo].[TestTable] 
   AFTER INSERT, UPDATE, DELETE
AS 
BEGIN
  PRINT ''test''
END'

    set @statement = REPLACE(@statement,'$database$',@db)
    EXEC dbo.sp_executesql @statement = @statement

END
Run Code Online (Sandbox Code Playgroud)

当这样调用时:

EXEC [dbo].[CreateTriggrer] @db = N'TestDatabase'
Run Code Online (Sandbox Code Playgroud)

它返回此错误:

消息 2108,级别 15,状态 1,过程 TestTrigger,第 6 行
无法在“TestDatabase.dbo.TestTable”上创建触发器,因为目标不在当前数据库中。

这是公平的。有没有办法实现我想要的?

sql-server-2008 sql-server

0
推荐指数
1
解决办法
9007
查看次数