SQL Server 2012 Three Tables Joining
I have Three Tables in sqlserver2012
Master Table
OrderID PackageID CustomerName
1 1 Abc
2 2 Bcd
3 1 xyz
Child1 Table
OrderID ControlName
1 Row1COlumn1 (It Means Pant in Red Color is selected by user(relation with Child2 Table))
1 Row3Column1 (It Means Gown in Blue Color is selected by user(relation with Child2 Table))
1 Row4Column3 (It Means T Shirt in White Color is selected by user(relation with Child2 Table))
2 Row1Column2 (It Means Tie in Green Color is selected by user(relation with Child2 Table))
2 Row3Column1 (It Means Bow in Red Color is selected by user(relation with Child2 Table))
Child2 Table
PackageID Product Color1 Color2 Color3
1 Pant Red Green Blue
(Row1 of Package 1)
1 Shirt Blue Pink Purple
(Row2 of Package 1)
1 Gown Blue Black Yellow
(Row3 of Package 1)
1 T Shirt Red Green White
(Row4 of Package 1)
2 Tie Red Green
White
(Row1 of Package 2)
2 Socks Red Green White
(Row2 of Package 2)
2 Bow Red Green White
(Row3 of Package 2)
I want to have result like
OrderID PackageID CustomerName Pant Gown T Shirt Tie Bow
1 1 ABC
Red Blue White x x
2 2 Bcd
x x x Green Red
Waiting for solution.
Thanks and Best Regards Umair
For PIVOTing you can use PIVOT or CASE expression.
CASE expression PIVOT (cross tabulation):
http://www.sqlusa.com/bestpractices/training/scripts/casefunction/
You can make both CASE & PIVOT dynamic:
http://www.sqlusa.com/bestpractices2005/dynamicpivot/
Kalman Toth Database & OLAP Architect
SQL Server 2014 Database Design
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012
Similar Messages
-
SQL Server 2012 - DB Table Record Merge help needed
Ok, so here is what I have and what I am trying to do. I have a couple of tables I need to pull information out of. The information is stored singly per record in each table like this:
User 1 Info
User 1 Info1
User 1 Info2
User 1
Info3
User 2 Info
User 2 Info1
etc...
What i want to do is query these tables and get my results back like this:
User 1 Info, Info1, Info2, Info3
User 2 Info, Info1
Is this even possible? I ask because I need to tie these tables to another table to get some results I need to review but the table in its current state creates multiple records because of their design.
Thanks.
JaysonOk, so after looking online for examples and looking at the answers here and my original note, I notice I didn't really explain this very well or correct. So I want to re-explain this.
I have two tables I need to combine into one result list so I am creating a view for this.
Table 1 has Name that I need
Table 2 has ContactKey that I need
The two tables are tied together by a common factor of Group Key. The SQL code I have to combine the tables into one view looks like this:
SELECT dbo.GroupMain.Name, dbo.GroupMember.MemberContactKey
FROM dbo.GroupMain INNER JOIN
dbo.GroupMember ON dbo.GroupMain.GroupKey = dbo.GroupMember.GroupKey
This results in a list of Names (which are group names that any specific record can be tied to and any record can be tied to more than one) and a MemberContactKey number which is a unique identifier for the record tied to this Name. So if I organize the
results, I will get something like this:
Name MemberContactKey
Group1 123456
Group2 123456
Group3 123456
Group1 456789
Group2 456789
Group1 789456
Group2 789456
Group3 789456
And so on. The Name option can be expanded to any number of groups I need/want to create with no problems. How I want this to look is like this:
MemberContactKey Name
123456 Group1, Group2, Group3
456789 Group1, Group2
789456 Group1, Group2, Group3
I tried using a STUFF call but that didn't seem to want to work unless I did it wrong.
Thanks for the assistance
Jayson -
Hi all,
I used the following code to create a new Database (ScottChangDB) and a new Table (marvel) in my SQL Server 2012 Management Studio (SSMS2012) successfully:
-- ScottChangDB.sql saved in C://Documents/SQL Server XQuery_MacLochlainns Weblog_code
-- 14 April 2015 09:15 AM
USE master
IF EXISTS
(SELECT 1
FROM sys.databases
WHERE name = 'ScottChangDB')
DROP DATABASE ScottChangDB
GO
CREATE DATABASE ScottChangDB
GO
USE ScottChangDB
CREATE TABLE [dbo].[marvel] (
[avenger_name] [char] (30) NULL, [ID] INT NULL)
INSERT INTO marvel
(avenger_name,ID)
VALUES
('Hulk', 1),
('Iron Man', 2),
('Black Widow', 3),
('Thor', 4),
('Captain America', 5),
('Hawkeye', 6),
('Winter Soldier', 7),
('Iron Patriot', 8);
SELECT avenger_name FROM marvel ORDER BY ID For XML PATH('')
DECLARE @x XML
SELECT @x=(SELECT avenger_name FROM marvel ORDER BY ID FOR XML PATH('Marvel'))--,ROOT('root'))
SELECT
person.value('Marvel[4]', 'varchar(100)') AS NAME
FROM @x.nodes('.') AS Tbl(person)
ORDER BY NAME DESC
--Or if you want the completed element
SELECT @x.query('/Marvel[4]/avenger_name')
DROP TABLE [marvel]
Now I am trying to create my first XML Schema Collection to do the Validation on the Field Name (Column Title) of the "marvel" Table. I have studied Chapter 4 XML SCHEMA COLLECTIONS of the book "Pro SQL Server 2008 XML" written by
Michael Coles (published by Apress) and some beginning pages of XQuery Language Reference, SQL Server 2012 Books ONline (published by Microsoft). I mimicked Coles' Listing 04-05 and I wanted to execute the following first-drafted sql in
my SSMS2012:
-- Reference [Scott Chang modified Listing04-05.sql of Pro SQL Server 2008 XML by Michael Coles (Apress)]
-- [shcColes04-05.sql saved in C:\\Documents\XML_SQL_Server2008_code_Coles_Apress]
-- [executed: 2 April 2015 15:04 PM]
-- shcXMLschemaTableValidate1.sql in ScottChangDB of SQL Server 2012 Management Studio (SSMS2012)
-- saved in C:\Documents\XQuery-SQLServer2012
tried to run: 15 April 2015 ??? AM
USE ScottChangDB;
GO
CREATE XML SCHEMA COLLECTION dbo. ComplexTestSchemaCollection_all
AS
N'<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="marvel">
<xsd:complexType>
<xsd:all>
<xsd:element name="avenger_name" />
<xsd:element name="ID" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO
DECLARE @x XML (dbo. ComplexTestSchemaCollection_all);
SET @x = N'<?xml version="1.0"?>
<marvel>
<avenger_name>Thor</name>
<ID>4</ID>
</marvel>';
SELECT @x;
GO
DROP XML SCHEMA COLLECTION dbo.ComplexTestSchemaCollection_all;
GO
I feel that drafted sql is very shaky and it needs the SQL Server XML experts to modify to make it work for me. Please kindly help, exam the coding of my shcXMLTableValidate1.sql and modify it to work.
Thanks in advance,
Scott ChangHi Scott,
2) Yes, FOR XML PATH clause converts relational data to XML format with a specific structure for the "marvel" Table. Regarding validate all the avenger_names, please see below
sample.
DECLARE @x XML
SELECT @x=(SELECT ID ,avenger_name FROM marvel FOR XML PATH('Marvel'))
SELECT @x
SELECT
n.value('avenger_name[1]','VARCHAR(99)') avenger_name,
n.value('ID[1]','INT') ID
FROM @x.nodes('//Marvel') Tab(n)
WHERE n.value('ID[1]','INT') = 1 -- specify the ID here
--FOR XML PATH('Marvel') --uncommented this line if you want the result as element type
3)i.check the xml schema content
--find xml schema collection
SELECT ss.name,xsc.name collection_name FROM sys.xml_schema_collections xsc JOIN sys.schemas ss ON xsc.schema_id= ss.schema_id
select * from sys.schemas
--check the schema content,use the name,collection_name from the above query
SELECT xml_schema_namespace(N'name',N'collection_name')
3)ii. View can be viewed as virtual table. Use a view to list the XML schema content.
CREATE VIEW XSDContentView
AS
SELECT ss.name,xsc.name collection_name,cat.content
FROM sys.xml_schema_collections xsc JOIN sys.schemas ss ON xsc.schema_id= ss.schema_id
CROSS APPLY(
SELECT xml_schema_namespace(ss.name,xsc.name) AS content
) AS cat
WHERE xsc.name<>'sys'
GO
SELECT * FROM XSDContentView
By the way, it would be appreciated if you can spread your questions into posts. For any question, feel free to let me know.
Eric Zhang
TechNet Community Support -
Hi all,
Long time ago, I manually created a Database (APGriMMRP) and 3 Tables (dbo.Table_1_XYcoordinates, dbo.Table_2_Soil, and dbo.Table_3_Water) in my SQL Server 2012 Management Studio (SSMS2012). The dbo.Table_1_XYcoordinates has the following columns: file_id,
Pt_ID, X, Y, Z, sample_id, Boring. The dbo.Table_2_Soil has the following columns: Boring, sample_date, sample_id, Unit, Arsenic, Chromium, Lead. The dbo.Table_3_Water has the following columns: Boring, sample_date, sample_id, Unit, Benzene, Ethylbenzene,
Pyrene. The dbo.Table_1_XYcoordinates is a Parent Table. The dbo.Table_2_Soil and the dbo.Table_3_Water are 2 Child Tables. The sample_id is key link for the relationship between the Parent Table and the Child Tables.
Problem #1) How can I print out or export these 3 dbo Tables?
Problem #2) If I right-click on the dbo Table, I see "Start PowerShell" and click on it. I get the following error messages: Warning: Failed to load the 'SQLAS' extension: An exception occurred in SMO while trying to manage a service.
--> Failed to retrieve data for this request. --> Invalid class. Warning: Could not obtain SQL Server Service information. An attemp to connect to WMI on 'NAB-WK-02657306' failed with the following error: An exception occurred in SMO while trying
to manage a service. --> Failed to retrieve data for this request. --> Invalid class. .... PS SQLSERVER:\SQL\NAB-WK-02657306\SQLEXPRESS\Databases\APGriMMRP\Table_1_XYcoordinates> What causes this set of error messages? How can
I get this problem fixed in my PC that is an end user of the Windows 7 LAN System? Note: I don't have the regular version of Microsoft Visual Studio 2012 in my PC. I just have the Microsoft 2012 Shell (Integrated) program in my PC.
Problem #3: I plan to create an XML Schema Collection in the "APGriMMRP" database for the Parent Table and the Child Tables. How can I handle the relationship between the Parent Table and the Child Table in the XML Schema Collection?
Problem #4: I plan to extract some results/data from the Parent Table and the Child Table by using XQuery. What kind of JOIN (Left or Right JOIN) should I use in the XQuerying?
Please kindly help, answer my questions, and advise me how to resolve these 4 problems.
Thanks in advance,
Scott ChangIn the future, I would recommend you to post your questions one by one, and to the appropriate forum. Of your questions it is really only #3 that fits into this forum. (And that is the one I will not answer, because I have worked very little with XSD.)
1) Not sure what you mean with "print" or "export", but when you right-click a database, you can select Tasks from the context menu and in this submenu you find "Export data".
2) I don't know why you get that error, but any particular reason you want to run PowerShell?
4) If you have tables, you query them with SQL, not XQuery. XQuery is when you query XML documents, but left and right joins are SQL things. There are no joins in XQuery.
As for left/right join, notice that these two are equivalent:
SELECT ...
FROM a LEFT JOIN b ON a.col = b.col
SELECT ...
FROM b RIGHT JOIN a ON a.col = b.col
But please never use RIGHT JOIN - it gives me a headache!
There is nothing that says that you should use any of the other. In fact, if you are returning rows from parent and child, I would expect an inner join, unless you want to cater for parents without children.
Here is an example where you can study the different join types and how they behave:
CREATE TABLE apple (a int NOT NULL PRIMARY KEY,
b varchar(23) NOT NULL)
INSERT apple(a, b)
VALUES(1, 'Granny Smith'),
(2, 'Gloster'),
(4, 'Ingrid-Marie'),
(5, 'Milenga')
CREATE TABLE orange(c int NOT NULL PRIMARY KEY,
d varchar(23) NOT NULL)
INSERT orange(c, d)
VALUES(1, 'Agent'),
(3, 'Netherlands'),
(4, 'Revolution')
SELECT a, b, c, d
FROM apple
CROSS JOIN orange
SELECT a, b, c, d
FROM apple
INNER JOIN orange ON apple.a = orange.c
SELECT a, b, c, d
FROM apple
LEFT OUTER JOIN orange ON apple.a = orange.c
SELECT a, b, c, d
FROM apple
RIGHT OUTER JOIN orange ON apple.a = orange.c
SELECT a, b, c, d
FROM apple
FULL OUTER JOIN orange ON apple.a = orange.c
go
DROP TABLE apple, orange
Erland Sommarskog, SQL Server MVP, [email protected] -
Import MS Access 2013 tables into SQL Server 2012
Hi there,
Is there a step by step example somewhere showing how to import an MS Access 2013 table into SQL Server 2012?
I have read the existing posts and don't see a definitive answer.
I have installed MS Access 2010 engine, first 32 bit then 64 bit.
I have installed the MS Access 2013 runtime on my server.
I use the Office 2015 Access Database Engine OLE DB Provider.
I get the error:
Error 0xc0202009: Source - APEntries [1]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.
Error 0xc02020e8: Source - APEntries [1]: Opening a rowset for "`TableName`" failed. Check that the object exists in the database.
The post regarding the above errors doesn't resolve the issue.
I have full administrative permissions on the server.
What is the trick to making this work?
Thanks,
Ric
Ric MillerHi there,
I tried the exact same operation on a third machine.
This machine has Windows 8.1 64 bit, SQL Server 2012 64 bit, MS Office 2013 Plus 32 bit.
I am the administrator on this machine.
I installed this:
Microsoft Access Database Engine 2010 Redistributable 32 bit (because I have MS Office 2013 plus 32 bit installed.)
From here:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
It won't let me install the 64 bit version without uninstalling MS Office 32 bit.
I created an MS Access database on this machine using MS Access 2013 and created a table with 3 records.
I used the "Import and Export Data (32 bit)" from the start menu.
After I installed the "Database Engine 2010 32 bit" driver above, I now have the option of "Office 2015 Access Database Engine OLE DB Provider" as Data Source which I did not have prior to doing this installation.
I selected the driver and added the Properties of the Data Source Name file location of the MS Access file. I am using a blank password.
I go thru the same sequence of selecting a table to import and after running the result is the same:
Error 0xc0202009: Source - APEntries [1]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.
"Error 0xc02020e8: Source - APEntries [1]: Opening a rowset for "`TableName`" failed. Check that the object exists in the database."
This seems to be consistent across three machines with three operating systems with the same files and the same result.
I understand that some people have gotten this to work.
I would appreciate it if anyone can report an error in the above procedure to me.
Thanks,
Ric
Ric Miller -
Hi,
I am trying to build a 3-tier SharePoint 2013 farm.
1. SQL Server 2012, Windows 2012 VM
2. DC Server, Windows 2012 VM
3. SharePoint 2013, Windows 2012 VM
I didn't built the DC server. Someone else did. However, I created about 14 service domain user accounts for SQL Server and SharePoint install and operation.
I was able to join the SQL Server into the SharePoint server farm using SharePoint 2013 Product Configuration Wizard. When I start the Central Admin, and click on Servers in the Farm, I only see the SharePoint server and SQL server,
but the DC server is not listed. Any suggestion on what did I miss?
Thanks
JeanYou cannot join the Domain Controller to your SharePoint farm. You must instead join each server from that farm to the domain that is served up by that DC. You will want to uninstall SharePoint and probably SQL before you do this. If it's
an option, I would re-provision your VMs completely and start fresh. Once you login to a new server, join that server to the target domain like this:
http://www.petri.co.il/join-windows-server-2012-to-domain.htm
You'd have to ensure that your DNS resolves to the target domain on the server being joined to the domain. If it doesn't, you can always use HOSTS entries to overcome that in the short term.
Once you've joined both the future SQL and SharePoint servers to the domain, you can install SQL Server and then SharePoint on their prospective servers to create your farm.
I trust that answers your question...
Thanks
C
|
RSS |
http://crayveon.com/blog |
SharePoint Scripts | Twitter |
Google+ | LinkedIn |
Facebook | Quix Utilities for SharePoint -
Hi all,
In the Notepad, I created an xml file (ZenQroducts.xml) :
<Qroducts>
<Qroduct>
<SKU>1</SKU>
<Desc>Book</Desc>
</Qroduct>
<Qroduct>
<SKU>2</SKU>
<Desc>DVD</Desc>
</Qroduct>
<Qroduct>
<SKU>3</SKU>
<Desc>Video</Desc>
</Qroduct>
In my SQL Server 2012 Management Studio, I executed the following code:
--to create a new object Qroducts in a new database OPENXMLtesting
CREATE DATABASE OPENXMLtesting
GO
CREATE TABLE Qroducts(
sku INT Primary KEY,
qroduct_desc VARCHAR(30));
INSERT INTO Qroducts (sku, qroduct_desc)
SELECT X.qroduct.query('SKU').value('.', 'INT'),
X.qroduct.query('Desc').value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'H:\ZenQroducts.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('Qroducts/Qroduct') AS X(qroduct);
SELECT sku, qroduct_desc
FROM Qroducts;
I got the following message:
Msg 9400, Level 16, State 1, Line 6
XML parsing: line 13, character 12, unexpected end of input
I have no ideas why I got this "XML parsing:line 13, character12, unexpected end of input" message. Please kindly help, advise me on where I made mistake and how I can resolve this problem, and respond in this Forum.
Thanks in advance,
Scott Chang
Hi Manish, Thanks for your response.
Yes, it is a duplicate with Qroducts/Qroduct instead of Products/Product. I did it, because I don't know how to remove the existing "Products" database.
Again, I got the existing "Qroducts" database in this second trial!!?? I am comletely lost in doing "Importing XML file to SQL Table" now!! I think that I have not touched T-SQL and XML programming, since 2008. I
did not catch the new features of T-SQL 2008, XML, SQL/XML, XQuery, etc. for long time. Recently, I did not know what DECLARE, @x, SET,...were, and dived into the SQL/XML and XQuery programming. I knew the SQL Basics (SELECT, FROM, WHERE,..), creating
the names of databases and tables in SQL Server 2008/2012 Management Studio (Express) before. This morning, I found an old T-SQL 2008 Prgrammer's Guide that has the new features of SQL Server 2008 for T-SQL, XML, XQuery, etc. I just starting reading
it to know what DECLARE, @x, SET,... are. But, I still don't know where the existing databases "Products" and "Qroducts" (created by me) are - they are not in the Databases of SQL Server 2012 Management Studio I am using!!?? Could
you please kindly point out where the "Products" and "Qroducts" databases are?
Prashanth responded to my posted question too and he asked to to try his code: DECLARE @xml XML, SELECT @xml =' <Qroducts>.....SELECT product.value.....FROM @XML.nodes.....AS.... I just learned that his code is doing the thing we
want to do and print the results below the SQL Query. This is not what I need in doing my SQL/XML programming. I am reading/studying the new (2008) features of T-SQL, XQuery 1.0: An XML Query Language (Second Edition), and Microsoft XQuery Language Reference
(SQL Server 2012 Books Online) closely now. I hope that I can resume the T-SQL, XML Query, SQL/XML, XQuery in my SQL Server 2012 Management Studio soon.
Please tell me where the existing databases "Products" and "Qroducts" I created in my previous trials in my SQL Server 2012 Management Studio. This is what I need to know and to delete them, before I do this kind of "Importing
XML file to Table of SQL Server 2012 Management Studio" programming again.
Please kindly help, advise and respond again.
Many Thanks,
Scott Chang -
Hi all,
In my SQL Server 2012 Management Studio, I executed the following code:
CREATE TABLE Products(
sku INT Primary KEY,
product_desc VARCHAR(30));
INSERT INTO Products (sku, product_desc)
SELECT X.product.query('SKU').value('.', 'INT'),
X.product.query('Desc').value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'H:\ZenProducts.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('Products/Product') AS X(product);
SELECT sku, product_desc
FROM Products;
I got the following message:
Msg 9455, Level 16, State 1, Line 5
XML parsing: line 3, character 12, illegal qualified name character
I have no ideas why the "product" in the statement "SELECT X.product.query('SKU').value('.','INT')" is not legal qualified name charcter!!!??? Please kindly help, advise and respond.
Thanks in advance,
Scott ChangHi Manish, Thanks for your response.
Here is a copy of my ZenProducts.xml:
<Products>
<Product>
<SKU>1<</SKU>
<Desc>Book</Desc>
</Product>
<Product>
<SKU>2<</SKU>
<Desc>DVD</Desc>
</Product>
<Product>
<SKU>3<</SKU>
<Desc>Video</Desc>
</Product>
I found the wrong "<<" in my xml file and changed it to the right "<" for the statement<SKU>1</sku>. I executed the corrected code and I got the following new message:
Msg 2714, Level 16, State 6, Line 1
There is already an object named 'Products' in the database.
I don't know how to remove the old, existing the 'Products' object in the database and execute the corrected code again. Please kindly help, advise and tell me how to resolve this new problem.
Many Thanks,
Scott Chang
P. S. I played with another project to get the 'Products' object in my database before. Frankly, I don't know where the old 'Products' object and the database are. Please enlighten me in resolving this matter more clearly.
You welcome Scott, As Olaf mentioned in this post, there was already a table exists , so need to drop your Products table.
Apart from this, I guess either you did not pasted the full XML file or what, I needed to have the ( </Products>)closing tag in your XML file as follows.
<Products>
<Product>
<SKU>1</SKU>
<Desc>Book</Desc>
</Product>
<Product>
<SKU>2</SKU>
<Desc>DVD</Desc>
</Product>
<Product>
<SKU>3</SKU>
<Desc>Video</Desc>
</Product>
</Products>
You can use following script to drop if your
Products table is already existing.
if exists(select 1 from sys.tables where name ='Products')
drop table Products
CREATE TABLE Products(
sku INT Primary KEY,
product_desc VARCHAR(30));
INSERT INTO Products (sku, product_desc)
SELECT X.product.query('SKU').value('.', 'INT'),
X.product.query('Desc').value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'H:\ZenProducts.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('Products/Product') AS X(product);
SELECT sku, product_desc
FROM Products;
Let us know if you face any other problem.
Thanks
Manish
Please click Mark as Answer if my post solved your problem and click
Vote as Helpful if this post was useful. -
Read Oracle 10g Tables to SQL Server 2012
Hi all,
I have Oracle 10g on an XP machine, and use the 'Oracle in OraDB10g_home1' driver to read the data. I have another Windows Server 2008 R2 machine on the same network, with SQL Server 2012 on it. What is the best way to read Oracle Tables in SQL Server? Can I setup an ODBC link from my Windows Server machine to the Oracle Database (which would require me to download an Oracle ODBC driver)? Or is the best way to export the required tables from Oracle (e.g. into csv format) and import them into SQL?
Thanking you in advance,
Imelda.987575 wrote:
Hi all,
I have Oracle 10g on an XP machine, and use the 'Oracle in OraDB10g_home1' driver to read the data. I have another Windows Server 2008 R2 machine on the same network, with SQL Server 2012 on it. What is the best way to read Oracle Tables in SQL Server? Can I setup an ODBC link from my Windows Server machine to the Oracle Database (which would require me to download an Oracle ODBC driver)? Or is the best way to export the required tables from Oracle (e.g. into csv format) and import them into SQL?
Thanking you in advance,
Imelda.You should use Heterogeneous Services
Following is a demonstration in ASKTOM to connect from Oracle to Excel, You can use the same to connect to SQL Server.
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:4406709207206#18830681837358 -
SQL Server 2012 Database with FileStream enabled tables
Hi,
I have some questions concerning the SQL Server 2012 FileStream feature.
In a database combining both Filestream connected tables and none filestream connected tables. It is obviously possible to tell the root path to a filestream FILEGROUP. It's also possible to create database primary data file (.mdf) and several
optional secondary data files (.ndf), and multiple log files.
If I have two filestream connected tables, which each in turn have a couple of other referenced tables (none filestream connected). Is it possible to put the filestream filegroup1 (eg. the filestream connected table1) and its referenced none filestream connected
tables, their data, indexes etc., on the same physical data file? And the other filestream connected table and its referenced tables to another physical file (.ndf)? If this is possible and recommended, how do I declare such an create database statement?
For ex. when having tables for both none archived state, archived state, in the same database. Or is the best solution to split the two (and its referenced tables) in separate databases?
SWEDEVHello,
File groups a just contains for the objects, you e.g. can split one table over several file Groups/secondarie files using partitioning. And a filestream is also just a table. You can reference all table Independent of file Groups / file stream.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Hi all,
In my SQL Server 2012 Management Studio (SSMS2012), I tried to create a Database (MacLochainnsDB) and a dbo Table (marvel). then I wanted insert 8 VALUES into the Table by using the following code:
USE master
IF EXISTS
(SELECT 1
FROM sys.databases
WHERE name = 'MacLochlainnsDB')
DROP DATABASE MacLochlainnsDB
GO
CREATE DATABASE MacLochlainnsDB
GO
CREATE TABLE [dbo].[marvel] (
[avenger_name] [char] (30) NULL)
INSERT INTO marvel
(avenger_name)
VALUES
('Hulk', 1),
('Iron Man', 2),
('Black Widow', 3),
('Thor', 4),
('Captain America', 5),
('Hawkeye', 6),
('Winter Soldier', 7),
('Iron Patriot', 8)
I got the following error Message:
Msg 110, Level 15, State 1, Line 5
There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
How can I correct this problem?
Please kindly help and advise.
Thanks in advance,
Scott Chang
P. S.
The reason I tried to create the Database, dbo Table, and then to insert the VALUES is to learn the following thing:
You can query the entire node tree with the following xquery statement because it looks for the occurrence of any node with the /* search string:
DECLARE @x xml;
SET @x = N'<marvel>
<avenger_name>Captain America</avenger_name>
</marvel>';
SELECT @x.query('/*');
You can query the avenger_name elements from the marvel_xml table with the following syntax:
SELECT xml_table.query('/marvel/avenger_name')
FROM marvel_xml;
It returns the following set of avenger_name elements:
<avenger_name>Hulk</avenger_name>
<avenger_name>Iron Man</avenger_name>
<avenger_name>Black Widow</avenger_name>
<avenger_name>Thor</avenger_name>
<avenger_name>Captain America</avenger_name>
<avenger_name>Hawkeye</avenger_name>
<avenger_name>Winter Soldier</avenger_name>
<avenger_name>Iron Patriot</avenger_name>
You can query the fourth avenger_name element from the marvel_xml table with the following xquery statement:
SELECT xml_table.query('/marvel[4]/avenger_name')
FROM marvel_xml;
It returns the following avenger_name element:
<avenger_name>Thor</avenger_name>Hi Scott,
The master database records all the system-level information for a SQL Server system, so best practise would be not to create any user-defined
object within it.
To change your default database(master by default) of your login to another, follow the next steps so that next time when connected you don't have to use "USE dbname" to switch database.
Open SQL Server Management Studio
--> Go to Object explorer(the left panel by default layout)
--> Extend "Security"
--> Extend "Logins"
--> Right click on your login, click "propertites"
--> Choose the "Default database" at the bottom of the pop-up window.
--or simply by T-SQL
Exec sp_defaultdb @loginame='yourLogin', @defdb='youDB'
Regarding your question, you can reference the below.
SELECT * FROM master.sys.all_objects where name ='Marvel'
--OR
SELECT OBJECT_ID('master.dbo.Marvel') --if non empty result returns, the object exists
--usually the OBJECT_ID is used if a if statement as below
IF OBJECT_ID('master.dbo.Marvel') IS NOT NULL
PRINT ('TABLE EXISTS') --Or some other logic
What is the sys.all_objects? See
here.
If you have any question, feel free to let me know.
Eric Zhang
TechNet Community Support -
Ssis - import data from flat file to table (sql server 2012)
i have create a ssis for importing data from flat file to table in sql server 2012.
but i got the below error for some column in data flow task.
error: cannot processed because than one code page (950 and 1252)
anyone helps~Hi,
The issue occurs because the source flat file uses ANSI/OEM – Tranditional Chinese Big5 encoding. When processing the source file, the flat file connection manager uses code page 950 for the columns. Because SQL Server uses code page to perform conversions
between non-Unicode data and Unicode data, the data in the code page 950 based input columns cannot be loaded to code page 1252 based destination columns. To resolve the issue, you need to load the data into a SQL Server destination table that includes Unicode
columns (nchar or nvarchar), and convert the input columns to Unicode columns via Data Conversion or the Advanced Editor for the Flat File Source at the same time.
Another option that may not be that practical is to create a new database based on the Chinese_Taiwan_Stroke_BIN collation, and load the data to non-Unicode columns directly.
Reference:
http://social.technet.microsoft.com/Forums/windows/en-US/f939e3ba-a47e-43b9-88c3-c94bdfb7da58/forum-faq-how-to-fix-the-error-the-column-xx-cannot-be-processed-because-more-than-one-code-page?forum=sqlintegrationservices
Regards,
Mike Yin
TechNet Community Support -
How to join MS SQL Server 2012 to Dreamweaver CS6
Hello everyone.
Here's my question: Is it possible to link a Microsoft SQL Server 2012 Database to Dreamweaver CS6, instead of the default MySQL Database?
I don't particullarily like MySQL because it's interface isn't familiar to me. Instead, I use s way more professional Database Management software, SQL Server 2012. I know that when I try to connect Dreamweaver CS6 to a database, I only have the option to link it to MySQL and I'd like to change it, or at least, to add the SQL Server to the options list. Is there a way to configure that or a kind of Dreamweaver plug-in or extension?
Please answear.
Best regards,
Vlad Drelciuc
Web Content DeveloperSince you refer to MySQL as the default database, I presume that you're talking about using PHP.
Yes, you can link to MS SQL Server - as long as you're willing to code everything by hand. If you're looking for automated code generation, though, the answer is no.
Even the default PHP/MySQL server behaviors are not really worth considering for professional web development. They're fine for quick prototyping, but they use deprecated functions that are not suitable for a production environment. -
Full-Text search is not working with PDF files - SQL Server 2012 64 bit
Hi,
We are in the process of storing PDF files in SQL Server 2012 with Full-Text search capability.
I followed the steps as below and it works fine with word document but not for PDF files. I tried with PDF ifiler 11 & 9 and both are unsuccessful.
Server/DB Level Settings:
1)
Enable FileStream
2)
Install Full-Text
then restart
3)
Use [specific db]
alter
database [db name]
add
filegroup Files
contains filestream;
alter
database [db name]
add
file (
name = N'Files',
filename =
N'D:\SQL\DATA') to
filegroup [Files];
3)
Database level
Settings:
FileStream:
FileStream
Directory name:
[Set the name]
FileStream
non-transacted
Access: [set Appropriate]
3a)
Add a
datafile to DB
with filestreamdata
filetype.
4)
Share D:\SQL\DATA
directory and
add specific accounts
with read/write
access
5)
Give bulkadmin
access to those
specific accounts
at server
level
6)
From the
page (link)
download and
install the *.pdf
IFilter for
FTS. Link:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=5542
7)
To the
PATH global system
variable add
path to the
catalog,
where you installed
the plugin.
Default for
this version is:
C:\Program
Files\Adobe\Adobe
PDF iFilter 9
for 64-bit
platforms\bin
8)
From the
page (link)
download a
FilterPackx64.exe
and install
it. Link:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=20109
9)
Now from
SSMS execute the following
procedures:
-sp_fulltext_service
'load_os_resources',1
-sp_fulltext_service
'verify_signature', 0
EXEC
sp_fulltext_service
'update_languages';
-- update language list
EXEC
sp_fulltext_service
'restart_all_fdhosts';
-- restart daemon
reconfigure
with override;
10)
Restart the
server
11)
select document_type,
path from
sys.fulltext_document_types
where document_type
= '.pdf'
-select
document_type,
path from sys.fulltext_document_types
where document_type
= '.docx'
12) Results are OK.
Following is my Table /Index/ catalog script:
CREATE
TABLE dbo.DocumentFilesTest
DocumentId INT
IDENTITY(1,1)
NOT NULL
PRIMARY KEY,
AddDate datetime
NOT NULL,
Name nvarchar(50)
NOT NULL,
Extension nvarchar(10)
NOT NULL,
Description nvarchar(1000)
NULL,
FileStream_Id UNIQUEIDENTIFIER
ROWGUIDCOL NOT
NULL UNIQUE DEFAULT
NEWSEQUENTIALID(),
FileSource varbinary(MAX)
FILESTREAM DEFAULT(0x)
go
--Add default add date for document
ALTER
TABLE dbo.DocumentFilesTest
ADD CONSTRAINT
DF_DocumentFilesTest_AddDate
DEFAULT sysdatetime()
FOR AddDate
EXEC
sp_fulltext_database
'enable'
GO
IF
NOT EXISTS
(SELECT
TOP 1 1 FROM sys.fulltext_catalogs
WHERE name
= 'Ducuments_Catalog_test')
BEGIN
EXEC sp_fulltext_catalog
'Ducuments_Catalog_test',
'create',
'D:\SQL\PDFBlob';
END
--EXEC sp_fulltext_catalog 'Ducuments_Catalog_test', 'drop'
DECLARE
@indexName nvarchar(255)
= (SELECT
Top 1 i.Name
from sys.indexes
i
Join sys.tables
t on
i.object_id
= t.object_id
WHERE t.Name
= 'DocumentFilesTest'
AND i.type_desc
= 'CLUSTERED')
PRINT @indexName
EXEC
sp_fulltext_table
'DocumentFilesTest',
'create',
'Ducuments_Catalog_test',
@indexName
EXEC
sp_fulltext_column
'DocumentFilesTest',
'FileSource',
'add', 0,
'Extension'
EXEC
sp_fulltext_table
'DocumentFilesTest',
'activate'
EXEC
sp_fulltext_catalog
'Ducuments_Catalog_test',
'start_full'
ALTER
FULLTEXT INDEX
ON [dbo].[DocumentFilesTest]
ENABLE
ALTER
FULLTEXT INDEX
ON [dbo].[DocumentFilesTest]
SET CHANGE_TRACKING
= AUTO
ALTER
FULLTEXT CATALOG
Ducuments_Catalog_test REBUILD
WITH ACCENT_SENSITIVITY=OFF;
INSERT
INTO DocumentFilesTest(Extension,
Name,
FileSource)
SELECT
'pdf'
'BOL12006553.pdf'
* FROM
OPENROWSET(BULK
'd:\SQL\PDFBlob\BOL12006553.pdf',
SINGLE_BLOB)
AS BLOB;
GO
INSERT
INTO DocumentFilesTest(Extension,
Name,
FileSource)
SELECT
'docx'
'test.docx'
* FROM
OPENROWSET(BULK
'd:\SQL\PDFBlob\test.docx',
SINGLE_BLOB)
AS Document;
GO
SELECT
d.*
FROM dbo.DocumentFilesTest
d WHERE
Contains(d.FileSource,
'BILL')
Returns nothing. it should come from PDF file
SELECT
d.*
FROM dbo.DocumentFilesTest
d WHERE
Contains(d.FileSource,
'TEST')
Returns from word document as follows:
2 2014-06-04 10:11:41.393 test.docx docx
NULL [BINARY Value] [Binary Value]
Any help is appreciated. Its been a long wait.
Thanks,
Vel
Vel ThavasiHello,
Did you check the fulltext log files for more details about the errors. If the filter isn’t working, there should be errors in the error log file.
The following thread is about similar issue, please refer to:
http://social.msdn.microsoft.com/forums/sqlserver/en-US/69535dbc-c7ef-402d-a347-d3d3e4860d72/sql-server-2008-64bit-fulltext-indexing-pdf-not-working-cant-find-ifilter
Regards,
Fanny Liu
If you have any feedback on our support, please click here.
Fanny Liu
TechNet Community Support -
SQL Server 2012 Deploy Database to SQL Azure...
I have spent many days trying to copy a simple test database from my PC to SQL Azure but with little success. Then I installed SQL Server 2012 and see a new task:
Deploy Database to SQL Azure... It looks like an automated extraction to DAC and then creating the Azure database all in one step.
I was elated, but got hit with the following three types of errors.
One or more unsupported elements were found in the schema used as part of a data package.
Error SQL71564: The element Extended Property: [dbo].[Accounts].[Address].[MS_Description] is not supported when used as part of a data package (bacpac).
Error SQL71564: Table Table: [dbo].[Activities] does not have a clustered index. Clustered indexes are required for inserting data in this version of SQL Server.
Error SQL71564: Element User: [NT AUTHORITY\NETWORK SERVICE] has an unsupported property AuthenticationType set and is not supported when used as part of a data package.
(Microsoft.SqlServer.Dac)
May I know what I can do on the on-premise database to rid of the first and third error?
Thanks.Hello,
1) Remove the Extended Property from the (?) column Address in table Accounts.
BTW, for small databases it's sometimes easiere to generate a script for the database (and modify it slightly) instead of using the Wizard
Olaf Helper
Blog
Xing
What is Extended Property? What is this .MS_Description? I can't see it in the table designer or the Column Properties. (I don't know whether this was corruption caused by Data Sync I used earlier.) How do I remove it.
Of all the methods of copying SQL Server to Azure SQL, this one gives the least mistakes. If I can solve this Extended Properties thing hopefully I can migrate the database over.
Maybe you are looking for
-
How to merge 2 part of two different Domdocument
Hi, I try to copy on subtree from a first DOMdocument to a second DOMDocument and I receive a java null pointer exception. How can I copy one part of a DOM to another ? CREATE OR REPLACE PROCEDURE testDom IS BufferString VARCHAR2(32767) := '<TEST>tes
-
Running chgrp for SAP Output Files
Hi All, Have a situation I need some help with please. We are integrating our SAP system with another application. As part of the process, the SAP system outputs a file to the OS. By default, this file is created with user SIDadm and group sapsys. Th
-
Hi all I have a strange behaviour of my Mac MIni 2012. The mini is connected to the internet by LAN. When I download a file via http or ftp everything is very fast (arround 95mbit/s). But when I try to open a website in Safari, Chrome or Firefox i ha
-
Error in NWDS uploading Webdynpro example
Hi All, I am trying to deploy and run the webdynpro CarRental example project and I get a series of errors of missing library during the build like... Project TutWD_CarRental is missing required library: 'C:Program Files/SAP/IDE/IDE70/eclipse/plugins
-
EnterpriseSession.logoff() error while doing Outproc Session Management
In application I am keeping Sessionstate as outproc and mode= SQLSERVER. Here everything works fine except at the place where I do enterprisesession.Logoff(); enterprisesession.Dispose(); It throws the error: [HttpException (0x80004005): Unable to s