Dynamically Determine Linked Servers
Oct 26, 2007
In our system, we need to execute queries using linked servers. However, the linked server name is not well known, it is a value stored in the system. Is there a way this can be done?
CREATE FUNCTION dbo.stfGetSupervisorOrgUnitAssignments(@SupervisorID INT)
RETURNS @ReturnTable TABLE(Org_Unit INT PRIMARY KEY)
AS
BEGIN
DECLARE @Server VARCHAR(100)
SELECT @Server = dbo.stfGetLinkedServerName()
INSERT INTO @ReturnTable(Org_Unit)
SELECT ReplicationID FROM OPENQUERY(@Server, '....')
END
Any help would be greatly appreciated.
View 6 Replies
ADVERTISEMENT
Dec 3, 2006
I want to dynamically determine which column I select data from. The table I want to select from looks like this:tblSexualitySexualityID int PKEN nvarchar(20)NL nvarchar(20)DE nvarchar(20)Based on the value of variable @LanguageColumnName I want to select the value from either column "EN", "NL" or "DE"In the sample below the value of @LanguageColumnName is "NL".Unfortunately the value of sexualityname is ALWAYS: "tblSexuality.NL" and not the value from that specific column...how can I alter my procedure so that it does the select the value from that column?ALTER PROCEDURE [dbo].[spFindUsers]@LanguageColumnName nvarchar(3),@startRowIndex int,@maximumRows intASBEGINSET NOCOUNT ON;
declare @tblSexualityName nvarchar(40)set @tblSexualityName='tblSexuality.' + @LanguageColumnName SELECT UserName,UserCode,ThumbNailPicture,BirthDate,ShowAgeOnly,IsMale,NearestBigCity,DistanceToNearestBigCity,Description,IsDonator,IsVIP,SexualityName FROM(SELECT ROW_NUMBER() OVER (ORDER BY UserCode) as RowNum,tblUserData.UserName,UserCode,IsDonator,IsVIP,Description,BirthDate,IsMale,ShowAgeOnly,tblCountries.CountryPicture,@tblSexualityName as sexualityname,tblCountries.CountryName,ThumbNailPicture,LastActivityDate,UserRanking,NearestBigCity,DistanceToNearestBigCity FROM aspnet_Users INNER JOIN tblUserData ON aspnet_Users.UserId = tblUserData.UserID INNER JOIN tblCountries ON tblUserData.Country=tblCountries.CountryID INNER JOIN tblSexuality ON tblUserData.Sexuality=tblSexuality.SexualityID) as MemberInfoWHERE RowNum > @startRowIndex AND RowNum <= (@startRowIndex + @maximumRows)END
View 1 Replies
View Related
Dec 6, 2004
Hello,
I m writing a stored procedure to query a table Population that has the following fields - CityId, CityName, Plus0, Plus10, Plus20, Plus30, Plus40, Plus50, Plus60, Plus70, Plus80. The field Plus0 contains the number of people of age > 0 living in the city, Plus10 contains the number of people of age > 10 living in the city and so on. Given the city id and age groups like 20To40, 50To60, 40Plus, etc., I should be able to query the number of people in the city corresponding to the requested age group. Note that if the requested age group was 20To60, I need to make use of only 2 fields Plus20 and Plus60 in the table to compute this value. And if the requested age group was 40Plus, then I need only the value in the field Plus40. The problem is that a wide variety of age groups can be requested like 0Plus, 10Plus, ... , 80Plus, 0To10, 0To20, 0To30, .... 70To80.
Which is the most effecient way to handle this ?
1. Have a stored procedure that returns all the fields even though only 1 or 2 of them would be actually used ?
In this case, if I returned data for a large number of cities then there would be a lot of unnecessary information that was returned by the query. Lots of data would be passed through the network though most of it would not be used.
2. Have a stored procedure that takes in parameters @Plus0, @Plus10, @Plus20, .. @Plus80 that are bits indicating whether the field was required or not and then using a CASE statement to return values for a field only if the corresponding bit parameter was set, and returning NULL if the corresponding bit paramter was not set ?
In this case, I would be returning NULL for all those fields that were not required for a particular age group. This would save some network bandwidth, wouldn't it ?
3. Pass in the age group itself (ex: 0To20) as a parameter to the stored procedure and have lots of IF statements, one for each age group, that return only the fields that are needed for that age group.
This leads to a lot of code repitition.
4. Use a similar approach as above but use dynamic SQL queries to avoid code repitition.
But using dynamic SQL queries can affect the performance of the stored procedure as they need to be compiled each time.
5. Any other possible approaches ??
Looking forward to your responses,
Thanks much,
bmgun.
View 3 Replies
View Related
Aug 16, 2006
Hopefully a simple answer:
*editted for clarity*
Where does the "Dynamically determine port" check box come from when creating a ODBC connection using TCP/IP in the client configuration? Only shows up in the control panel/adminstrative tools/Data Sources (ODBC) when it is installed. I have 3 computers here that have it (they are for development) but I am finding my users desktops do not have the box and so I am getting errors trying to connect from their desktops.
I am using Excel and Microsoft Access 2000 to connect to the server using the ODBC connection.
I need my users to connect to SQL Server 2005 so I need the "Dynamically determine port" box checked to find the port. Tried typing in the port but that isn't solving the problem or answering my question. So far I have tried MDAC and .NET 2.0 platform installs with no luck.
Thanks for the help,
View 8 Replies
View Related
Feb 22, 2007
I'm using SSAS2005 SP2 as a data source, and RS2005 SP2 for reporting.
With the upgrade to sp2, users assigned to an area in a sales location tree no longer get a value returned for AGGREGATE(MyValue.Value) when looking at a region higher than they are assigned.
My MATRIX reports now look like:
_______________________________|___|___|
Region____Sub Region____Area1__|_5___3_|
Sub Region Total_______________|_______|
Region Total___________________|_______|
Grand Total____________________|_______|
Before sp2, they had the 5 and 3 values repeated in all total rows.
My thought was to hopefully dynamically hide the sub region and region groupings and their related subtotals - but when trying to do this, only the grand total shows, and its values are blank.
When a person can only see Area1, I'd like the report to look like this:
_______________________________|___|___|
Region____Sub Region____Area1__|_5___3_|
but if they could see everything from the cube, I would like those sections to show, because they have values in them:
_______________________________|___|___|
Region____Sub Region____Area1__|_5___3_|
Sub Region Total_______________|_10__5_|
Region Total___________________|_20_11_|
Grand Total____________________|_42_13_|
View 3 Replies
View Related
Jan 27, 2003
Hi, is there a way of how to find all the SQL 2000 servers on our local Network. We have a lot of development servers around the company and I need a tool (or somthing) that could help me find the server name and the version of it.
Thx
Dim
View 5 Replies
View Related
Apr 9, 2015
I've been put in a situation where I have a number of SQL DB's running on 2005/2008 which I have responsibility for. I've been given limited information so am looking at a starting point to determine where I go from here.
I have of course ensured there is a backup strategy in place to secure the data.
View 1 Replies
View Related
Feb 13, 2004
Hi, have configured an ODBC linked server for an Adaptive Server Anywhere (ASA6.0) database.
I have to write a function (not a procedure) that receives a number (@Code) and returns 1 if it was found on a table in the linked server, or 0 if not. Looks very simple...
One problem, is that the queries on a linked-server must be made through the OPENQUERY statement, which doesen't support dynamic parameters. I've solved this making the whole query a string, and executing it, something like this:
SET @SQL='SELECT * FROM OPENQUERY(CAT_ASA, ''SELECT code FROM countries WHERE code=' + @Code + ''')'
EXEC sp_executesql @SQL
(CAT_ASA is the linked-server's name)
Then, i would use @@ROWCOUNT to determine if the code exists or not. But before this, a problem appears: sp_executesql is not allowed within a function (only extended procedures are allowed).
Does somebody know how to make what i want?? I prefer to avoid using temporary tables.
Thanks!
View 3 Replies
View Related
Aug 17, 2006
Is it possible to link to an SQL 2005 server db from a SQL 2000 server? Is there a driver for this?
View 1 Replies
View Related
Apr 5, 2008
can anybody tell me about Linked Servers and their uses and how to add a linked server to my Sql Server 2005.
any help on this would be highly appreciated.
View 3 Replies
View Related
Jun 10, 2004
Hello All,
I have been trying to Link two sql servers on two different machines over the Internet without any luck. Can someone point me to information about doing this with good examples?
Thanks
View 2 Replies
View Related
Jan 22, 2002
I currently have a main SQL Server which had a column on the majority of the tables. This column also had a check contraint on it. I dropped the column and the constraint and I now get the following message when trying to query the tables through a linked server 'OLE DB provider 'SQLOLEDB' supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time.'.
Can anyone help
View 1 Replies
View Related
May 10, 2001
Hi All,
I have successfully linked a server and had SQL queries running
OK for a few weeks, but today I get the following message....
"OLE DB provider 'SQLOLEDB' supplied inconsistent metadata. An extra column was supplied during execution that was not found at compile time."
(Server: Msg 7353, Level 16, State 1, Line 1)
I've dropped the link and recreated it but I still get the same error
message. Can anyone help???
Thanks
David.
View 2 Replies
View Related
Jun 25, 2001
Hi,
I'm using SQL Server 7.0 SP1.
I have a DTS package that requires me to link 2 servers
and query both in order to get my set of records that I
want to Transform. My query runs fine in QA. I copy and
paste it into the SQL Query window of the transformation.
I click Preview and all that happens is a quick flicker of
the DTS window. When I go to Transformations, there are
no source columns.
Here is a copy of my code that I'm trying to use:
-------------------------------------------------------
declare@start_dteas datetime,
@end_dteas datetime
SELECT@start_dte = date_data_range_start_dte,
@END_DTE = date_data_range_END_dte
FROMSIDDEV.SID_DEVELOPMENT.DBO.T901_RUN
WHERERUN_ID = (selectmax(run_id)
from
SIDDEV.SID_DEVELOPMENT.DBO.t901_run
whererun_type_cd = 'M')
SELECTRUN_ID
INTO#RUNS
FROMCRMDEV02.MDCORE.DBO.T901_RUN
WHEREDATE_DATA_RANGE_START_DTE >= @START_DTE
ANDDATE_DATA_RANGE_END_DTE <= @END_DTE
SELECTT70.*
FROM
CRMDEV02.MDCORE.DBO.T70_MD_UNIVERSE_RELATIONSHIP_M A
NGT AS T70 JOIN #RUNS
ONT70.RUN_ID = #RUNS.RUN_ID
DROP TABLE #RUNS
------------------------------------------------------
Is there an issue with Linked Servers and DTS?
Any help would be greatly appreciated.
Thanks in advance,
Darrin
View 1 Replies
View Related
Aug 7, 2001
FOLKS
I GET THE FOLLOWING ERROR WHEN I RUN A SELECT FROM THE LINKED SERVER
THE LINKSERVER EXISTS AND THERE IS A RECORD IN SYSSERVERS TOO.
Could not initialize data source object of OLE DB provider 'Microsoft.Jet.OLEDB.4.0'
I AM NOT SURE WHERE TO GO FROM HERE.
REGARDS
GIRISH
View 1 Replies
View Related
Aug 10, 2001
Hi Gurus,
I am looking for literature to find out Pros and Cons of Using DTS Verses
Linked Servers in SQL 7.0.
My requirement can be done by either DTS or Linked servers. But I would like to know more about resorce utilisation of these tecniques before making a decission.
Can somebody suggest where to look for.
Thanks
sekhar
View 1 Replies
View Related
Sep 18, 2001
When I create linked server using integrated security and <they will be impersonated> option I get this:
Server: Msg 18456, Level 14, State 1, Line 1 Login failed for user ''
MS Technet says that SQL Server 7 doesn't allow double hops and to use mappings to standard security login to work around. @#%%~~@@#@#&^%@#
Impersonating to version 6.5 works fine.
Is there any way to link servers using ONLY integrated security?
Any help would be much appreciated.
Thanks
View 1 Replies
View Related
Jul 18, 2000
I have setup a linked Informix server in SQL7.0 and I am trying to create a
simple View with the following SQL statement
SELECT doc_code
FROM FOURSITE.foursite.informix.watdoc
WHERE (order_no = [PV01963B ])
I am getting the following error:
---------------------------
SQL Server Enterprise Manager
---------------------------
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid use of schema and/or
catalog for OLE DB provider 'MSDASQL'. A four-part name was supplied, but
the provider does not expose the necessary interfaces to use a catalog
and/or schema.
---------------------------
OK Help
---------------------------
Can any one tell me how to correct this problem?
Thanks
Peter
pczurak@bigfoot.com
View 5 Replies
View Related
Apr 17, 2000
Is it possible to add a 6.5 database as a linked server to a 7.0 database and query from it ?
View 6 Replies
View Related
Nov 3, 2000
Hi.
I'm working with SQL Server 7.0 and I've been reading about the linked server option. My question is, if it's possible to link a server with a SQLBase database 7.01.
I have download some drivers to my computer, the odbc driver for sqlbase and the sqlbase ole db driver as well, but when I try to add a new linked server in the enterprise, in the provider name option I can not see any provider name addressing to Centura or Sql base driver.
Has anybody an idea how to make this connection then? or the right way for doing it??
Thanks for any help can be offered.
Regards, Elvia.
:)
View 2 Replies
View Related
Feb 10, 2000
I have two 7.0 servers and I want to run a distributed query.
I did sp_addlinkedserver to link server B to server A
and I did sp_addlinkedsrvlogin for a specific login.
After adding login when I try to access a table on server B it
says login failed
All the logins are NT authenticated (in both the servers, So
both servers have same logins.)
but it is not working.
View 1 Replies
View Related
Sep 1, 2000
Hi all
I try to configure Linked Servers from the query analyze , and have some troubles.
My steps are :
1. from the enterprise mennenger , add 2 new servers : srv1 , srv2 (both SQL7)
2. from the query analyzer of srv1.master: "sp_addlinkedserver 'srv2'"
3. from the query analyzer of srv1.master:
"sp_addlinkedsrvlogin 'srv2',false,null,'sa','myPass'"
4. select * from srv2.pubs.srv2Table
5. I get the next error :"error 6 : Specified SQL srever not found."
What do I do wrong ?
Eyal
View 2 Replies
View Related
Apr 19, 2000
Anyone out there use linked servers? I just tried this SQL7 feature and am very impressed. Are there any pitfalls to watch out for? Comments?
Thanks in advance.
Steve
View 1 Replies
View Related
Feb 14, 2002
I have created link servers a few time within SQL2000 and pulled data from Oracle. How would an Oracle Server or Application pull / See from SQL?
Anyone have any experience?
Thanks,
David
View 1 Replies
View Related
May 11, 2002
How to determine by means of T-SQL
if a linked server is available(for processing with its tables)?
View 1 Replies
View Related
Jun 26, 2002
This is my problem I have a Server A and Server B. There is a master table in Table A. I link Server A and Server B. When I look in Under Linked Server tables of B I can only C tables in Server A not the Server B 's Tables. Dpn't know what is happening. Could SOmebody help
View 1 Replies
View Related
Nov 1, 2004
We are creating a newServer grabbing data from an extrnal data source.
We need to perform regular audits to verify the record counts (for now) are the same.
We have 2 physically separate SQL servers 1 with old 1 with new.
I have created a linked server but when i do a query on the linked server the performace is pathetic (2mins 12 secs) to do a simple count.
Is there a better way, or can improv the perf?
Thanks
Greg C
View 3 Replies
View Related
Jan 5, 2006
I have two servers and they are linked servers. When I query a table on ON Box2 from Box1
The distributed query works fine but when I tried the oppisite it says 'SQL Server does not exist or access denied.'
What could be the reason.
Thanks.
View 2 Replies
View Related
Feb 27, 2006
Recently, I had Microsoft review why our SQL Db was unexpectedly terminating. They pointed to our Oracle Linked servers. They recommended that we try to uncheck the enable allow in process option on the ODBC driver. We are currently using the Microsoft OLE Db provider for our Oracle connnections as we were unable to get the Oracle ones to work with a linked server. When we unchecked this allow in process option near the end of the day our website began getting out memory errors from ODBC. It appeared to have been because of this change. Does anyone have any insight as to why changing this option could have caused this?
View 1 Replies
View Related
Sep 29, 2006
Hello,
Is there any limit to the number of linked servers i can add via EM?. where can i find more info on adding/configuring linked servers in MSSQL2k and the limitations/drawbacks if any?
Thanks in advance..
View 1 Replies
View Related
Apr 12, 2007
Hello (again!)
We have a new 2005 server, and I am trying to link our old 2000 server so I can use the old databases in new server.
This is what I done:
In 2005:
EXEC sp_addlinkedserver oldServer
--completed fine
then:
EXEC sp_addlinkedsrvlogin oldServer, 'false', NULL, 'Administrator', password
--completed fine
But whenI run the query I get the error:
OLE DB provider "SQLNCLI" for linked server "oldServer" returned message "Communication link failure".
Msg 10054, Level 16, State 1, Line 0
TCP Provider: An existing connection was forcibly closed by the remote host.
Msg 18456, Level 14, State 1, Line 0
Login failed for user 'Administrator'.
Any ideas????
View 2 Replies
View Related
Aug 28, 2007
I have to link servers using sql server 2000 standard edition....
for anyone who has done this..... upon linking the servers using the other options radio button choice.... is it suppose to show all the databases for that server under the drop down....
its only showing tables and views... which i get an error 7339 or error 17:
can anyone assist...or lead me in the right direction.....
thanks,
jonathan
View 5 Replies
View Related
Sep 12, 2007
Hi,
Disclaimer: I am not a DBA so my attempts may not make sense. :)
I have a win 2003 server running sql server 2005. I am trying to create a 'linked server' with an oracle 8i database at a remote site. I have tried using the 'add linked server' option from sql server enterprise manager and I have also tried to create it using the sp_addlinkedserver command. i tried using a dsn as the datasource and I have also tried using a dsnless connection using a TNS entry as the provider string. The Oracle client is on the box as can be confirmed both by the dropdown in the 'add linked server' dialog in sql server enterprise manager and also by going into the oracle enterprise manager and actually sending oracle data. I don't really have a preference on how to create the 'Linked server', I just need to get it to work.
AAA = server
BBB = DSN
XXX = UID
YYY = pwd
DSNLess Attempt:
EXEC master.dbo.sp_addlinkedserver @server = N'TEST1', @srvproduct=N'OraOLEDB.Oracle', @provider=N'OraOLEDB.Oracle', @provstr=N'SERVER=(DESCRIPTION=(ADDRESS_LIST=(ADDR ESS=(PROTOCOL=TCP)(HOST=AAA)(PORT=1556))) (CONNECT_DATA=(SERVICE_NAME=LPPCPEDB)));uid=XXX;pw d=YYY;'
DSN Attempt:
EXEC master.dbo.sp_addlinkedserver @server = N'TEST2', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=BBB'
Thanks in Advance
View 3 Replies
View Related