USP_IDSETREGISTER_CREATEORUPDATEFORSMARTQUERYINSTANCE
Registers a smart query id set.
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @SMARTQUERYINSTANCEID | uniqueidentifier | IN | |
| @ISSTATIC | bit | IN | |
| @USEINQUERYDESIGNER | bit | IN | |
| @NUMROWS | int | IN | |
| @CHANGEAGENTID | uniqueidentifier | IN | |
| @IDSETREGISTERID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_IDSETREGISTER_CREATEORUPDATEFORSMARTQUERYINSTANCE
(
@SMARTQUERYINSTANCEID [uniqueidentifier],
@ISSTATIC bit = 0,
@USEINQUERYDESIGNER [bit] = 0,
@NUMROWS [int] = null,
@CHANGEAGENTID [uniqueidentifier] = null,
@IDSETREGISTERID uniqueidentifier = null output
)
with execute as caller
as
set nocount on
declare @ID uniqueidentifier
declare @DBOBJECTNAME nvarchar(128)
declare @OBJECTTYPE tinyint
set @OBJECTTYPE = 0
select @ID = IDSETREGISTERID from dbo.IDSETREGISTERSMARTQUERYINSTANCE where SMARTQUERYINSTANCEID = @SMARTQUERYINSTANCEID
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @USEINQUERYDESIGNER is null
set @USEINQUERYDESIGNER = 0
if @ISSTATIC = 1
begin
set @DBOBJECTNAME = dbo.UFN_SMARTQUERYINSTANCE_MAKEIDSETSTATICTABLENAME(@SMARTQUERYINSTANCEID)
end
else
begin
set @DBOBJECTNAME = dbo.UFN_SMARTQUERYINSTANCE_MAKEIDSETFUNCTIONNAME(@SMARTQUERYINSTANCEID)
set @OBJECTTYPE = 1
end
if @ID is null
-- add new row to register
begin
if @IDSETREGISTERID is null
set @IDSETREGISTERID = newid()
insert into dbo.IDSETREGISTER (ID, NAME, DESCRIPTION, SITEID, RECORDTYPEID, DBOBJECTNAME, OBJECTTYPE, STATIC, NUMROWS, USEINQUERYDESIGNER, ADDEDBYID, CHANGEDBYID, OWNERID)
select @IDSetRegisterID, SMARTQUERYINSTANCE.NAME + ' (Smart Query)', SMARTQUERYINSTANCE.DESCRIPTION, SMARTQUERYINSTANCE.SITEID, SMARTQUERYCATALOG.RECORDTYPEID, @DBOBJECTNAME, @OBJECTTYPE, @ISSTATIC, @NUMROWS, @USEINQUERYDESIGNER, @CHANGEAGENTID, @CHANGEAGENTID, OWNERID
from dbo.SMARTQUERYINSTANCE
join dbo.SMARTQUERYCATALOG on SMARTQUERYCATALOG.ID = SMARTQUERYINSTANCE.SMARTQUERYCATALOGID
where SMARTQUERYINSTANCE.ID = @SMARTQUERYINSTANCEID
insert into dbo.IDSETREGISTERSMARTQUERYINSTANCE (ID, IDSETREGISTERID, SMARTQUERYINSTANCEID, ADDEDBYID, CHANGEDBYID) values
(newid(), @IDSETREGISTERID, @SMARTQUERYINSTANCEID, @ChangeAgentID, @ChangeAgentID)
end
else
set @IDSETREGISTERID = @ID
-- update existing register info
update dbo.IDSETREGISTER
set NAME = SMARTQUERYINSTANCE.NAME + ' (Smart Query)', DESCRIPTION = SMARTQUERYINSTANCE.DESCRIPTION, SITEID = SMARTQUERYINSTANCE.SITEID, OBJECTTYPE = @OBJECTTYPE, STATIC=@ISSTATIC, NUMROWS=@NUMROWS, USEINQUERYDESIGNER = @USEINQUERYDESIGNER, CHANGEDBYID=@CHANGEAGENTID, DATECHANGED=getdate(),
DBOBJECTNAME = @DBOBJECTNAME, OWNERID = SMARTQUERYINSTANCE.OWNERID
from dbo.SMARTQUERYINSTANCE where IDSETREGISTER.ID = @ID and SMARTQUERYINSTANCE.ID = @SMARTQUERYINSTANCEID