We are having trouble figuring out how to create a view for this scenario:
We have a status log table that holds an order number, statusdatetime, and statuscode. This table will have multiple status' for the same order number. I want to create a view that will give me the most current status (by statusdatetime) of each order number. This view would show: order number, statusdatetime, and statuscode.
Greeting guys, does anyone here experience the problem that I had currently. I did set up a mirroring for my db for 1 month + and work perfectly. However, due to lack of stability on line connection on the principal database side, so makes mirror side get disconnected frequently. I found that once the principal side get back smooth, the mirroring status shows 'synchronizing' status and I thought it gets fine again.
However, after 2 days (which more than 48 hours) and I check back the status, it still showing 'synchronizing' and synchronize slowly. It's impossible that the mirror side takes more than 2 days for synchonizing. ( Size on principal size is around 1.2GB and mirror side around 800MB) Is there any solution on it ? Is it have to re-set up the mirroring session again? I don't think is line connection issue because I did set up another mirroring session between these two servers and work fine. Hope you guys can help me out asap. Thx.
Hey folks, I'm looking at making the following query more efficientpotentially using the ranking functions and I'd like some advice fromthe gurus. The purpose of the following is to have a status for aperson, and also have a historical background as to what they've done,status wise. This was the best way I could come up with to do this afew years back, but I'm wondering if there's a better way with Sql2005.Here's a toned down structure and my query. Any help/critique wouldbe greatly appreciated.CREATE TABLE #Status(StatusID int NOT NULL,StatusName VARCHAR(50) NOT NULL,StatusCategoryID int NOT NULL) ON [PRIMARY]CREATE TABLE #RegStatus([RegistrationID] [uniqueidentifier] NOT NULL,[StatusID] [int] NOT NULL,[StatusTimeStamp] [datetime] NOT NULL,[UniqueRowID] [int] IDENTITY(1,1) NOT NULL) ON [PRIMARY]SET NOCOUNT onINSERT INTO #Status VALUES(200, 'StatusA', 1)INSERT INTO #Status VALUES(210, 'StatusB', 1)INSERT INTO #Status VALUES(115, 'StatusC', 1)INSERT INTO #Status VALUES(112, 'StatusD', 1)INSERT INTO #Status VALUES(314, 'StatusE', 1)INSERT INTO #Status VALUES(15, 'StatusF', 1)INSERT INTO #Status VALUES(22, 'StatusG', 1)INSERT INTO #Status VALUES(300, 'StatusX', 2)INSERT INTO #Status VALUES(310, 'StatusY', 2)INSERT INTO #Status VALUES(320, 'StatusZ', 2)INSERT INTO #RegStatus VALUES('7A6058D0-06CB-4E83-A8C4-B1AFC74B11F0',200, GETDATE())INSERT INTO #RegStatus VALUES('7A6058D0-06CB-4E83-A8C4-B1AFC74B11F0',210, GETDATE())INSERT INTO #RegStatus VALUES('7A6058D0-06CB-4E83-A8C4-B1AFC74B11F0',115, GETDATE())INSERT INTO #RegStatus VALUES('8B94A666-A3DD-4CB1-89A0-9910047AE7A0',112, GETDATE())INSERT INTO #RegStatus VALUES('8B94A666-A3DD-4CB1-89A0-9910047AE7A0',314, GETDATE())INSERT INTO #RegStatus VALUES('8B94A666-A3DD-4CB1-89A0-9910047AE7A0',200, GETDATE())INSERT INTO #RegStatus VALUES('8B94A666-A3DD-4CB1-89A0-9910047AE7A0',22, GETDATE())INSERT INTO #RegStatus VALUES('58AF0FC6-C900-4BD0-B3F7-F9D62701F021',15, GETDATE())INSERT INTO #RegStatus VALUES('58AF0FC6-C900-4BD0-B3F7-F9D62701F021',115, GETDATE())INSERT INTO #RegStatus VALUES('58AF0FC6-C900-4BD0-B3F7-F9D62701F021',200, GETDATE())INSERT INTO #RegStatus VALUES('58AF0FC6-C900-4BD0-B3F7-F9D62701F021',115, GETDATE())SET NOCOUNT Off/*This is a query from within a function that I use to not only get thelateststatus for one registrant, but I can use it to get the latest statusfor everyone as well.*/DECLARE @RegStatusCatID int,@RegID UNIQUEIDENTIFIERSET @RegStatusCatID = 1SET @RegID = nullselect LS.*, S.StatusName, S.StatusCategoryIDfrom #Status Sjoin(select RS.RegistrationID, RS.StatusID, RS.StatusTimeStampfrom #RegStatus RSjoin(SELECT RS.RegistrationID , max(RS.UniqueRowID) UniqueRowIDFROM #RegStatus RSjoin #Status Son RS.StatusID = S.StatusIDand S.StatusCategoryID = @RegStatusCatIDand (@RegID is nullor (@RegID is not nulland RS.RegistrationID = @RegID))group by RS.RegistrationID)LSon RS.UniqueRowID = LS.UniqueRowID) LSon S.StatusID = LS.StatusID--SELECT * FROM #RegStatusDROP TABLE #RegStatusDROP TABLE #Status
I have created a job in SQL Server 2005 in which one of the step executes a .NET console application which is created in .NET to update some status to database before the next step. i need some help in sending some status back to sql job when i come accross any problem in the console application for ex when there is a exception i need to send some status to the job, so the job gets failed permanently. i tried few other methods of updating some temporary status database with this error information and have another intermediate step in the job to check for the status... it worked but i dont like doing it. please let me know if there is any other method to do this.
I am trying to create Replication Topology (Merge Replication) like below.
Subscriber1 --> Publisher <-- Subscriber2.
I have created both subscribers with Subscription Type as Server with Priority as 75. I am updating the Column A of Row_10 in Subscriber1 on time say 11 am. After i am running the Starting synchronizing agent from Subscriber1. The value propagated to Publisher now publisher contains the latest value in Column A. Uptonow the Subscriber2 is not synchronized with Publisher.
Now in Subscriber2 also Column A of Row_10 is updated say at 11.10 am. Actually now Publisher contains the value from Subscriber1 for that Column and in Subscriber2 we have the same column updated.
Now i am running the Synchronization in Subscriber2, i am getting the result which is not expected. Here Publisher's value is propagated to Subscriber2. But as per real scenario Subscriber2 has the Latest value which is updated on 11.10 AM.
I don't know what am i missing here. Actually merge replication should see the time stamp and it has to decide winner. But here it always considers publisher as a winner and puts the data to Subscriber.
I'm trying to create a report which would give the latest transaction on a database, which all sit on different servers. I wanted to know if there is an a simple way tracking the latest transactions instead of getting the information from the database tables.
A contract can many conditions so 1:M...Col 2 is the contract reference and the linking join to contract
Now - a condition related to an contract can have many re-trys and the causes the pk to increment. As you can see there are three conditions related to first attempt and then another three conditions.I want to create an ouput which just reflects the latest conditions when joining back to contract - Is this possible?I have requested to application providers to provide flag, but this will take some time...
Write a CREATE VIEW statement that defines a view named Invoice Basic that returns three columns: VendorName, InvoiceNumber, and InvoiceTotal. Then, write a SELECT statement that returns all of the columns in the view, sorted by VendorName, where the first letter of the vendor name is N, O, or P.
This is what I have so far,
CREATE VIEW InvoiceBasic AS SELECT VendorName, InvoiceNumber, InvoiceTotal From Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID
I have >200 tables and I want to create a table that lists the name ofeach table, the number of records, and the number of locations withinthe table.I've created a cursor to do this but it doesn't like it. I get thefollowing error.Invalid column name '<tablename>'.Here's my scriptDECLARE @tbl varchar(100)DECLARE @sql varchar(1000)-- Insert statements for procedure heredeclare c_table cursor forselect table_name from INFORMATION_SCHEMA.TABLES where table_type ='base table' order by table_nameopen c_tablefetch next from c_table into @tblwhile (@@fetch_status = 0)beginset @SQL = 'INSERT INTO [zzTable_Status]SELECT ('+ @tbl +') as tblname, count(distinct station__no),count(station__no)FROM [bronze_views].'+@tbl+''exec (@SQL)Print @tbl + ' Updated'fetch next from c_table into @tblendclose c_tabledeallocate c_tableAny help is appreciated...
I'm trying to create a proc for granting permission for developer, but I tried many times, still couldn't get successful, someone can help me? The original statement is:
I had given one of our developers create view permissions, but he wants to also modify views that are not owned by him, they are owned by dbo.
I ran a profiler trace and determined that when he tries to modify a view using query designer in SQLem or right clicks in SQLem on the view and goes to properties, it is performing a ALTER VIEW. It does the same for dbo in a trace (an ALTER View). He gets a call failed and a permission error that he doesn't have create view permissions, object is owned by dbo, using both methods.
If it is doing an alter view how can I set permissions for that and why does it give a create view error when its really doing an alter view? Very confusing.
I need to create a basic report that displays the userid, username, email, status and need to update the status column to enabled when we select any particular username. And the username parameter comes from the available users from the database. How to do this?
Do I need to mention the where clause where username=@username in the query or we don't need any
Also I need to get the available distinct usernames from the database while entering the parameter username
/*DECLARE variables to use IN queries*/ DECLARE @intErrorCode INT DECLARE @ErrorMessage VARCHAR(MAX) DECLARE @UserID INT SET @ErrorMessage = 'Completed.' SELECT [userid] ,
[code].....
Basically first I need to find the userid, username, accountstatus, email for a given particular user. Then I need to update the accountstatus to enabled for that selected user.
Also I need to create auditing that from before update and after update the accountstatus.
Hi everybody. I created an application role in a database (DB1) and gave it all the rights on a view in DB1 which refers to a table located in another db (DB2). I also gave the rights to the app role on a table of DB1 I tried to use this app. role through the sp_setapprole launched by a user (server principal?) which is SQL Server administrator (and local administrator (Win 2003 Server)). With the following query SELECT USER_NAME()
I see that the approle is being used. Than, if I query the table on DB1 everything works, but if I query the view, referring a table in db2 I get following error:
The server principal "NameOfServerPrincipal" is not able to access the database "DB2" under the current security context. What should I do to make it work?
The table in DB2 has the same schema of the view in DB1 which refers to it. I put the DB1 TrustWorthy and both the database have the db_chaining option activated.
Any idea on how to solve the problem would be widely appreciated. Thank you very much. Vania
Hello, i have a problem regarding stored procedures and view server state.
I have an application with a lot of stored procedures, one of them checks data of the connected users. In SQL 2000 i had no problem getting this information, but in SQL server 2005 i do.
my stored procedure looks like this:
ALTER PROCEDURE [dba].[applsp_GetConnectionInfo]
(
@DBName varchar(100)
)
WITH EXECUTE AS OWNER AS
BEGIN
SET NOCOUNT ON
DECLARE @sCollationMaster VARCHAR(128);
DECLARE @sSqlString VARCHAR(900);
-- Determine collation from master database because collation from master and ultimo database may differ
SELECT @sCollationMaster = CAST(databasepropertyex('master', 'Collation') AS VARCHAR);
SET @sSqlString =
'SELECT max(status) AS Status, max(isnull(SCISUSENAME, ''ULTIMOLOGIN'')) AS Login
, MAX(Rtrim(Rtrim(convert(varchar(255), nt_domain)) + nt_username)) AS NTUser
, max(Rtrim(hostname)) AS Host, MAX(Rtrim(program_name)) AS Program
FROM master.dbo.sysprocesses JOIN dba.SCONNECTIONINFO on SCISPID = CAST(spid AS VARCHAR)
AND ( SCISUSENAME = ISNULL(loginame, '''') COLLATE ' + @sCollationMaster + ' OR ISNULL(loginame, '''') = ''ULTIMOLOGIN'')
WHERE ...... AND DB_NAME(dbid) = ''' + @DBName + '''
GROUP BY hostprocess
ORDER BY Login
';
EXEC(@sSqlString);
END
I've granted view server state permissions to my user 'dba' which is the db_owner. When i execute the query in the stored procedure seperatly as dba i get all the info i need, but when i execute the stored procedure i don't see anything.
I seem to have the same problem with sp_who2 Executing it gives me information about everyone but when i put in a stored procedure like this:
i am creating a model in which the control panel i am building for a web application, i can write sql statements in a textbox and the query will be done in my application. But i am have a problem creating a table. this error of "Create table permission not granted in the sql server" pops up whenever i want to execute the create table sql statements from my web page. How can i permit my sql server to allow creation of tables from my web application. Thanks
Trying to create an audit that goes to the application log. With a certain criteria, select, update, delete etc.. where like 'example'-- some criteria..is there any reference out there that could give me some examples?
I have a VB application using an SQL server database. I've created two groups in SQL Server for the database, one called APPS Users and the other called APPS Admin. So far, so good. However, when I place users into the APPS Admin group, it seems that besides getting to my application via a connection string, they also get complete access to my SQL Server. I don't want them to have total access to my SQL Server, only to the application's database.
In short, I want to limit them to nothing more than my application and its related database. In my application, these APPS Admin users will see a different group of menus than the regular users.
Since some of these APPS Admin users are also DBO's, how can I set up my group to limit them?
Hope I made my plight clear.... any help offered is most appreciated! Thank you!
I am always not sure whether to consider create another DB for Logging usage.
As my habit, i love to create 2 DBs for one apllication, for example the applaication name is HHH, i would love to create two DBs named HHH and HHHLog. For HHH, recoording any transaction , for HHHLog, it's only for log alll knids message and archive some transaction tables monthly.
from with in an application using the report view can you puase a report that is taking a long time to complete and then at a latter date resume where you paused the report.
} if (ReplicationComplete != null) ReplicationComplete(this, true); } catch(Exception ex) { if (ReplicationComplete != null) ReplicationComplete(ex, false); }
}
Then later, if I try to update, insert or delete to the database, the application will hang. I can read from it, but I cannot write. If I close the application down and open it back up without replicating, I will not get any lockups. It also will not hang up after any replications prior to the create replication. I think I am doing something wrong in the initial replication that is holding on to some connection to the DB causing it to lock up. Has anyone seen anything like this before?
I saw a video on how its possible to create a local database so that when the application is being deployed, the mdf file will be deployed with it and will contain the enter data. The instructor(Beth Messi) showed that all I need to do is to add the .mdf file using the "Rightclick Project name in solution explorer > select add > add new item > then in the dialog that opens, select SQL database and click ok. I did this but the Visual Studio kept saying: "An error occored while extablishing a connection with the server. When connecting SQL Server 2005, this failure may have been caused by the fact that under the default settings of SQL Server does not allow remote connections. (Provider: Shared memory provider, error: 40 - could not open a connection to SQL Server)"
Honestly, I don't know how to go futher with this. The SQL server am using is the professional edition and I have been able to use it through Visual Studio to create Databases. It connects alright in that senario. Please I really need help here.
autorized user: sa any user : nuran temporary table: birtablo
I need a stored procedure will execute by sa and it will create some required temporary tables for each users. For example table name is birtablo. I mean sa will create table for nuran, and when I checked the owner of the table (birtablo) I want to see nuran not dbo. sa will execute following command:
create table nuran.birtablo (...........)
Is it possible to cerate a table by sa on behalf of any user? If it is, could you please explain?
CREATE VIEW dbo.[ikw_custom] AS SELECT * FROM rns_keyword.dbo.ikw_custom
but if I use following command with condition it gives me an error.
if not exists(select * from sysobjects where name ='ikw_custom' and type='V') begin CREATE VIEW dbo.[ikw_custom] AS SELECT * FROM rns_keyword.dbo.ikw_custom end
help will be appriciated. Thanks in advance -Balbir
I am learning how to work with MSSQL here is what I like to do I have a table with URLs like this "www.urls.com" I need to create a view that will insert this "http://" before "www.urls.com" can some please let me know what I need to do Thank you
I'm new to SQL, and developing my first application using SQL 2000 as the back end for my data.
Can anyone tell me if I can create an SQL View from VBA?
I'm trying to create a data view that access various records from a single table, and it has to distribute that data 2 14 different subforms, representing different days in a 2 week period, which is distingiushed by a field called "Day", that is numbered from 1 to 14.
I also have a summary subform that has the weekly summary (days 1 to 7 and 8 to 14) on seperate subforms. In total I have 16 subforms, which actually source from a single table, just split depending on the day in the period.
As I see it now, creating views iis the best way for me to go, but I also have to be able to change the period id on the fly, so I'm think I have to use VBA to generate these views.
Does any of this make sense, and am I on the right track??
hi,if the below query select DISTINCT group_module_menu_info.menulink FROM user_group_role_info,group_role_module_info,group_ module_menu_info where user_group_role_info.userid=user_table.userid and ((group_module_menu_info.moduleid = user_group_role_info.moduleid)OR (user_group_role_info.roleid=group_role_module_inf o.roleid and group_module_menu_info.moduleid = group_role_module_info.moduleid))
Create a view showing every order that was shipped to Spain. Name the destination column "DestinationSpain". Include code that checks if the view already exists. If it does, it should be dropped and re-created.
Use Northwind Go DROP VIEW Spain_Orders Go CREATE VIEW Spain_Orders AS SELECT * FROM Orders WHERE ShipCountry = 'Spain'
this is what I get.
server: Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'Spain_Orders', because it does not exist in the system catalog.