SQL XML :: How To Sort XML Based On (property Name Or Node)
Apr 22, 2015
Input
'<Email>
 <Type>Personal</Type>
 <Code>1</Code>
 <Description>solange@nobre.com.br</Description>
 <LocalId>000000000000000000000000868000000001</LocalId> Â
</Email>'
OUTPUT
'<Email> Â
 <Code>1</Code>
 <Description>solange@nobre.com.br</Description>
 <LocalId>000000000000000000000000868000000001</LocalId> Â
 <Type>Personal</Type>
</Email>'
I am facing some problem while grouping the fields.. I try to form one report where I get group by States then by city and then total count of states like
State: A city:1 No of ppls: no of houses: city:2 No of ppls: no of houses: city:3 No of ppls: no of houses: Total No of ppls in State A: State: B city:4 No of ppls: no of houses: city:5 No of ppls: no of houses: city:6 No of ppls: no of houses: Total No of ppls in State B:
I am putting together an invoice for my company. I have a text box describing each section of the invoice, followed by a table to list out the charges. I am using multiple tables based on what type of charge the client is receiving.Â
I would like to hide each section if there are no items purchased of that type. I can do this with the table using the expression "=CountRows() < 1", but I do not know how to refer to that table (call it Tablix1 for the sake of discussion) for the text box. I've tried using a ReportItems function as my basis, without success.Â
In the first image as can be seens i have 2 different data sources and then they are being joined using "Merge Inner Join". The "sort" is on BusinessEntityID column of Person table and "Sort1" is on "PersonID" of Customer table. The merge join of these 2 result in 19,119 rows.
On the other hand, if i use single data source and use a query with inner join on  tables  used in the first image (ie. 2 tables being used in 2 different data sources) as depicted in second image. Also,  since merge cannot operate without SortKey i have defined TerritoryID as sort key in the advanced editor. The number of rows i get after this is "10,274". My select query was :
SELECT P.BusinessEntityID, P.PersonType, P.Title, P.FirstName, P.MiddleName, P.LastName, P.Suffix, C.TerritoryID FROM stg.Person AS P INNER JOIN stg.Customer AS C ON C.CustomerID = P.BusinessEntityID ORDER BY C.TerritoryID;
According to me, it should have been the same as in first case i am using merge inner join and in second case i am using SELECT query with inner join. Upon drilling down i found that in the first case , my sort keys are BusinessEntityID  and PersonID, if i modify this to CustomerID  and BusinessEntityID as this is my join condition (in ithe inner join query shown above), i get the desired output. What i was wondering was, how  the sort order change the Join Condition?
Hi, please I would like to use something like this>
=IIF(table1_group2 is Collapsed,True,False)
I want to generated some event based on actual state of e.g. report group. if user expand group make this event otherwise (group is collapsed) make another event.
As bcp does not allow for the column names to be included; I have developed a method for providing the columns. The end result is that two Tables are required for each output; a "ColumnNames" table and the Table that contains the actual data; however the bcp command is sorting the data; why this is happening?Â
According to Microsoft, by default bcp will not apply any sorting unless specified.
Here is the command I am using to perform the bcp output: -
SET @bcpCommand =(select 'bcp "SELECT * FROM GPReports.dbo.MIS001_BCPColumnNames UNIONÂ SELECT * FROM GPReports.dbo.voltemp" queryout ' + @FilePath+' -c -t -T')
ID      Name   Date 1           A        null 2          B       01/01/2012 3          C       01/02/2013
Also, I have a sort parameter @sort and values are (Name, ID, Date)
I want to apply page break whenever @sort=Name. There should be no page break when user selects @sort = ID or Date. Page break should happen only when @sort value = Name
it should be like this...
Page 1: ID      Name   Date 1          A        null Page 2: ID      Name   Date 2          B        01/01/2012 Page 3: ID      Name   Date 3          C       01/02/2013
I have not used log shipping before and find myself in a position where I need to reboot the secondary node and then the primary node and I don't actually need to failover.
Is there anything I need to be aware of. When rebooting the secondary node I assume the transactions will be held in the primary nodes log till the secondary comes back and just carry on once back up?
When rebooting the primary node nothing needs to be done and the log shipping will just start again once it has come back?
But I'm not sure if I have to install SQL Server first on node 2, then add it to the cluster. Or does adding it to the cluster also install the software?
I'm contemplating running two availability groups on a two node WSFC. The WSFC is setup with a file share witness (i.e. no shared storage). Can I safely run 1 AG on one primary node, and the other AG on the other node (as primary). Each AG would have replicas on the passive node. This would effectively allow both servers to be in use at the same time. In a failover event, I understand that both workloads would transfer to a single server - so the box needs to be sized appropriately.
We are in the process of building a 3 node SQL Server Cluster (Server 2012/ SQL Server 2012), and we have configured the quorum so that all 3 nodes have a vote (no file share witness as we already have an odd number of nodes).
As I understand it, this should allow the cluster to run as long as 2 of the nodes remain online.
However, the validation report states that 2 node failures would be acceptable and, when we tested this by powering off two of the nodes, the cluster did indeed continue to run on a single node.
I configure Windows 2003 R2 and SQL 2005 two nodes Cluster. When I move cluster resource from one node to anther node it takes around 30 seconds to become online. So in that time if any query is running it stops responding.
I am having problems exporting data into a flat file using specific code page. My application has a variable "User::CodePage" that stores code page value (936, 950, 1252, etc) based on the data source. This variable is assigned to the CodePage property of desitnation file connection using Property expression.
But, when I execute the package, the CodePage property of the Destination file connection defaults to the initial value that was set for "User:CodePage" variable in design mode. I checked the value within the variable during runtime and it changes correctly for each data source. But, the property of the destinatin file connection doesn't change and results in an error.
[Flat File Destination [473]] Error: Data conversion failed. The data conversion for column "Column01" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
[DTS.Pipeline] Error: The ProcessInput method on component "Flat File Destination" (473) failed with error code 0xC02020A0. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.
If I manually update the variable with correct code page and re-run the ETL, everything works fine. Just that it doesn't work during run-time mode.
I invoke xp_cmdshell proc from inside a stored procedure on a 2-node active/passive SQL 2005 SP2 Standard cluster. Depending on which server the xp_cmdshell gets executed on I need to pass different arguments in the shell command. I thought I could use host_name() function to get the runtime process server, however, I am finding that it's not behaving correctly. In one example I know my active node is server2, but the host_name() function is returning server1. The only thing that I could possible explain this is that the MSDTC cluster group is not always on the same active node as the SQL server group and in the case I am talking about the cluster groups are in this mode (differnet nodes). Does the xp_cmdshell get executed by the SQL active node or the MDTC active node? And what is the best way to find out which server is going to run my xp_cmdshell?
Thanks.
Edit:
Perhaps another by product of this is that if I run select host_name() from the Studio Management query window i get different results depending on which server I am running the Studio Management on. On server1 I get server1 and on server 2 I get server 2, all the while server2 is the active node. I need a different function that will always let me determine the correct server that'll be running the xp_cmdshell...
Edit 2: I guess I could determine the running host inside the command shell itself, but I am curious to see if i can do it (cleaner) from SQL.
I developed a simple custom control flow component which has several read/write properties and one readonly property (lets call it ROP) whichs Get method simple returns the value of a private variable (VAR as string). In the Execute method the VAR has a value assigened. When I put the value of ROP or VAR into MsgBox I can see the correct value. However when I execute the component I can not see the value of the ROP in the property window. I see the property but its value is empty string. For example when I put a breakpoint to postexecute or check the property before click OK in a MsgBox I would expect that the property value would be updated in SSIS as well. Is there a way how to display correct values of custom tasks properties in property window?
Untill recently I had a smooth running SSIS package,but suddenly it throws error syaing "OnError,,,,,,,The result of the expression
"@[User:trTextFileImpDirectory] +"SomeTextStringHere"+ @[User:trANTTextFileName] +(DT_STR,30,1252) @[User:taging_Date_Key]+ "SomeTextStringHere" " on property "ConnectionString" cannot be written to the property. The expression was evaluated, but cannot be set on the property."
I have child SSIS package running under a parent package (through execute package task)
I have few flat file connection managers in child package for text file import , in which I am building text file path dynamically at run time by assigning an expression in connection string property of connection manager. The Expression is as follows
Where @[User:trTextFileImpDirectory] is a variable which contains path of directory containg text files.Value in this variable is assigned at runtime from parent package's variable,which in turns fetch value from a configuration file on local server.
With my current configuration this path has been configured to some other server's directory over network ( I.e my package picks text files from some other servers folder over network)
While "Some string here"+ @[User:trANTTextFileName]" part of file name string.
(DT_STR,30,1252) @[User:taging_Date_Key] Contain the date of processing ,value in this variable is also picked up at run time from parent package variable.
1) So can someone give me some insight into possible reason of failures. 2) Is it possible that problem arises if directory (from which I m picking text files) is assigned password or is there exist some problem in accessing forlders over network ? 3) Or there can be some problem in package configuration at design time( I.e where I m assigning value in variable from parent package vriables)?
I am trying to set sorting up on a DataGrid in ASP.NET 2.0. I have it working so that when you click on the column header, it sorts by that column, what I would like to do is set it up so that when you click the column header again it sorts on that field again, but in the opposite direction. I have it working using the following code in the stored procedure: CASE WHEN @SortColumn = 'Field1' AND @SortOrder = 'DESC' THEN Convert(sql_variant, FileName) end DESC, case when @SortColumn = 'Field1' AND @SortOrder = 'ASC' then Convert(sql_variant, FileName) end ASC, case WHEN @SortColumn = 'Field2' and @SortOrder = 'DESC' THEN CONVERT(sql_variant, Convert(varchar(8000), FileDesc)) end DESC, case when @SortColumn = 'Field2' and @SortOrder = 'ASC' then convert(sql_variant, convert(varchar(8000), FileDesc)) end ASC, case when @SortColumn = 'VersionNotes' and @SortOrder = 'DESC' then convert(sql_variant, convert(varchar(8000), VersionNotes)) end DESC, case when @SortColumn = 'VersionNotes' and @SortOrder = 'ASC' then convert(sql_variant, convert(varchar(8000), VersionNotes)) end ASC, case WHEN @SortColumn = 'FileDataID' and @SortOrder = 'DESC' THEN CONVERT(sql_variant, FileDataID) end DESC, case WHEN @SortColumn = 'FileDataID' and @SortOrder = 'ASC' THEN CONVERT(sql_variant, FileDataID) end ASC And I gotta tell you, that is ugly code, in my opinion. What I am trying to do is something like this: case when @SortColumn = 'Field1' then FileName end, case when @SortColumn = 'FileDataID' then FileDataID end, case when @SortColumn = 'Field2' then FileDesc when @SortColumn = 'VersionNotes' then VersionNotes end
case when @SortOrder = 'DESC' then DESC when @SortOrder = 'ASC' then ASC end and it's not working at all, i get an error saying: Incorrect syntax near the keyword 'case' when i put a comma after the end on line 5 i get: Incorrect syntax near the keyword 'DESC' What am I missing here? Thanks in advance for any help -Madrak
The header table row for G4 contains 3 textboxes containing the sums of the contents within G4. The header table row for G4 is visible while it's contents, including the G4 footer table row, is kept invisible until the report user drills down into the group.
When the report user drills down into G4 the footer table row becomes visible and the sums of the contents of the group are displayed for a second time.
At this point I want the sums in the header to be set to invisible when the sums in the footer are made visible by the drilldown.
When I try to reference the hidden property of textbox66 in the G4 footer in order to set the hidden property of header textbox57 in the G4 header I get to this point...
=IIF(reportitems!textbox66.
When it fails to give me an option of choosing the .Hidden property and instead only gives me a .Value.
If I complete the IIF statement manually so that it spells out .....
So my question is, how do I reference the hidden property of one or more textboxes in a group to use as condition checks to set the hidden property of another textbox in that same group?
Thank you for any help you can provide. We are only now beginning to implement reporting services and I have not yet had the chance to research this in greater detail for lack of time.
I would like to transfer selected data from an ODBC-based table to a OLEDB-based table. However, there isn't a data flow source on the Data Flow Design screen to accomodate such an action. Please help!
I cannot install SP2 on a new node that was added after SP2 applied to the primary. We had the following scenarios. Node A SP2, node B RTM.
Scenario 1) Resources moved to node A (also MSDTC and Cluster group). Setup running on node A.
Setup warns (even in log) "The product instance XXX been patched with more recent updates." Since it sees that local instance is patched, setup don't go on. I cannot select any clusterized instance. Scenario 2) Resources moved to node B (also MSDTC and Cluster group). Setup running on node B.
I undertstand, he cannot patch an already patched node (A). Setup stops ignoring local node. So... how can I just patch a single node (B)?
I read uninstalling Setup Support Files and reinstalling them will help faking an RTM node to the setup, but during uninstall I got the following warning "Warning 26002: The following product(s) is dependent on Microsoft SQL Server Setup Support Files (English), the key will be broken€¦" and it lists one of our instances (just one). We will test it virtually, we cannot afford loosing that instance. Thank you!
CREATE TABLE KUMAR ( ID INT PRIMARY KEY, Document XML(CONTENT KUMAR)) --Document is the xmlcolumn --------------------------------------- CREATE XML SCHEMA COLLECTION KUMAR AS 'schema file to be placed' --KUMAR is the XML-Schema collection name --------------------------------------------
INSERT KUMAR VALUES (1,'XML FILE TO BE PLACED')
When I try to update the xml data by using the below query
UPDATE KUMAR SET Document.modify('replace value of (/X12_U1_837/UserId) with "ABC"')
--(/X12_U1_837/UserId) Contains the XYZ,Which i need to replace with ABC I am getting the following error XQuery [KUMAR.Document.modify()]: The target of 'replace' must be at most one node, found 'element(UserId,#anonymous) *'
We have a cluster set up at my office ( Active/Active ) that has beenpitched as some prime real-estate, apparently, as the best place in theoffice for a database. Now it looks like one of my nodes is overrun withdatabases! I'd like to set up some traces in profiler or performancemonitor to gather some stats in case we start to experience some degredationin performance. I want to be able to point to some numbers to explain to myboss why we shouldn't put so many databases on one node. Any suggestionson what are some good counters to turn on? I'm thinking I should monitorI/O wait and paging at the very least. I've also heard someone mention tomonitor page life expectancy, but I don't know much about this one.TW
Hi,I am using xquery to extract XML fragments from my database. How do I xquery a table containing XML (typed) and return only nodes that meet the xquery.For example, the following returns empty cells if there is not @id = "op1". How I I only return values and not empty cells? SELECT xmldata.query('declare namespace ACM="www.mydomain.com"; (
I have a question about re-creating the sql portion on either node a or b in a clustered situation. Is it possible to do this without affecting the working node and database ? or is the best solution to make a ghosted image of the node after install is complete and if the node fails just get to a point on the affected node where you can copy the image back?
I need to grab the Node/Attribute with the name of "Number of Drops" and get the value of "Value". So in this case, I simply want to get "1". How could I do this?
SELECT "value of Number of Drops" FROM myTable WHERE ID = ....
its possible to check what the first node is before loading an XML file. The file name is just a combination of random numbers e.g. TMP_18028423.XML there's no way of knowing what it contains I need to check before loading into a table. Then I'll process the data from the temp table. i need to check if the first node is <Departments> then load the file that contains departments.
Here's the script I'm using to load the File:
CREATE PROCEDURE JobDepartmentXMLImport @FileName varchar(256) AS BEGIN --Create temp table CREATE TABLE #TempDepartment( [DepartmentName] nvarchar(64) NULL,
Is it possible to setup an cluster with sql server 2005 as single node cluster - and lets say in 4 month we add the second node to the cluster? - its because of budget and we do not want to setup then again.
Our management want to have two instances of SQL Server 2005 in Clustered environment.
First instance will serve existing application and Second instance will serve their new application.
As Microsoft suggests that, its not a good practice to have multiple instance on the same node, until you have any compelling reason to have such setup. The compelling reason what the mangement have is , some time ago they used same instance for both the application. What happened was, the secondary application took all the resources from primary(main) application, and server went down( this was past.).
So, now in clustering they want to have their first instance (which will serve our existing application) with enough CPU cores & memory so that it can run smoothly and then have second instance with the remaining CPU power & memory. So ,in case if second instance tries to eats up all the resources, it can eat what it have , it cannot take resources from primary instance.
But, what my idea here is:
Initially, dont install second instance for new application( in clustering environment). Instead ,use existing servers for the upcoming new appication where production & DR is there right now ( Standalone servers).
What i mean here is: After making sure that the existing (Primary) application is comfortable in clustering environment (in PRODUCTION) , until then, run the second application on the old PROD box & old DR will serve as its DR. So ,by going in this way , we are not installing initally two instances on the same node. When the life is good for the first instance, then based on those results, we can think for the second instance.
Ii wanted to know from you guys, what you think about this. Is this idea look feasible. Please let me know.
We have been working on a project to upgrade the servers in our 2-node SQL Server environment. I evicted a node after removing it from the instance. We added the new node under a new server name. I then start the Add remove programs, choose to change the SQL 2005 environment, type the virtual server name. Choose to maintain virtual server, pick to add new node. All seems well, I enter all prompted questions, and when the install begins I get the error below.
Product: Microsoft SQL Server 2005 -- Error 1706. An installation package for the product Microsoft SQL Server 2005 cannot be found. Try the installation again using a valid copy of the installation package 'SqlRun_SQL.msi'.
So I copied the SS2K5 Enteerprise Edition software to the local C: drive, point it too the 'SqlRun_SQL.msi' in the setup folder and still get the error.
i have a table below like : Id   ,   Request  Â
int    nvarchar(100)   and in Request field i put below data : 1 <request><F3>353535</F3><F6></F6></request> 2 <request><F5>353535</F5><F6></F6></request>3 <request><F3>353535</F3><F6></F6></request>
now i need to a query that i can find records that exists <F3> and if exists , remove just the <F3> tag
 below like : 1 <request><F6></F6></request> 2 <request><F5>353535</F5><F6></F6></request>3 <request><F6></F6></request>